這篇文章主要介紹了Linux中xargs命令有什么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Linux xargs命令
1.功能:
xargs可以將stdin中以空格或換行符進(jìn)行分隔的數(shù)據(jù),形成以空格分隔的參數(shù)(arguments),傳遞給其他命令。因?yàn)橐钥崭褡鳛榉指舴杂幸恍┪募蛘咂渌饬x的名詞內(nèi)含有空格的時(shí)候,xargs可能會(huì)誤判。簡(jiǎn)單來(lái)說(shuō),xargs是給其他命令傳遞參數(shù)的一個(gè)過(guò)濾器,是構(gòu)建單行命令的重要組件之一。
之所以要用到xargs,是因?yàn)橛捎诤芏嗝畈恢С质褂霉艿纜來(lái)傳遞參數(shù),例如:
find /sbin -perm +700 |ls -l //這個(gè)命令是錯(cuò)誤,因?yàn)闃?biāo)準(zhǔn)輸入不能作為ls的參數(shù) find /sbin -perm +700 |xargs ls -l //這樣才是正確的
2.命令格式
xargs [選項(xiàng)] [command]
3.選項(xiàng)說(shuō)明:
-0:如果輸入的stdin含有特殊字符,例如反引號(hào)`、反斜杠\、空格等字符時(shí),xargs可以將它還原成一般字符。為xargs的默認(rèn)選項(xiàng)。
-e <flag>,-E <flag>,--eof=<eof-str>:eof是end of file string的意思。flag可以是一個(gè)字符串或者是由空格分隔的多個(gè)字符串,當(dāng)xargs分析到這個(gè)flag時(shí),就會(huì)停止工作。見(jiàn)示例2。
-p:當(dāng)每次執(zhí)行一個(gè)argument的時(shí)候詢問(wèn)一次用戶。
-n <num>:表示命令在執(zhí)行的時(shí)候一次使用的argument的個(gè)數(shù),由num指定,默認(rèn)是用所有的參數(shù)。
-t:表示先打印命令,然后再執(zhí)行。
-a <file>:從文件中讀入作為sdtin。
-i,-I:其中-I某些Linux版本不支持。將xargs的輸出每一項(xiàng)參數(shù),單獨(dú)賦值給后面的命令,參數(shù)需要用{}代替。見(jiàn)示例3。
-r:或者--no-run-if-empty,當(dāng)xargs的輸入為空的時(shí)候則停止xargs,不用再去執(zhí)行后面的命令了,-r是xargs的默認(rèn)選項(xiàng)。
-s <num>:命令行的較大字符數(shù),指的是xargs后面那個(gè)命令的較大命令行字符數(shù),包括命令、空格和換行符。每個(gè)參數(shù)單獨(dú)傳入xargs后面的命令。見(jiàn)示例4。
-L <line_num>:設(shè)置標(biāo)準(zhǔn)輸入中較大的行數(shù)作為命令每一次執(zhí)行的參數(shù)。見(jiàn)示例5。
-d <delim>, --delimiter=<delim>: xargs處理標(biāo)準(zhǔn)輸入默認(rèn)是按換行符和空格作為分隔符,輸出arguments的分隔符是空格,這里修改xargs處理標(biāo)準(zhǔn)輸入時(shí)的分隔符。
-x:eXit的意思,主要是配合-s使用,當(dāng)命令行字符數(shù)大于-s指定的數(shù)值時(shí),退出xargs。
-P:修改較大的進(jìn)程數(shù),默認(rèn)是1,為0時(shí)候?yàn)閍s many as it can。該選項(xiàng)比較少用,目前還不清楚該用法。4.用法示例
(1)將shell的特殊字符還原為一般字符。
[b3335@MIC ~]$ echo '`0123`4 56789'|xargs -t echo echo `0123`4 56789 `0123`4 56789
如果直接進(jìn)行如下操作,會(huì)報(bào)無(wú)法找到命令01234的錯(cuò)誤,因?yàn)榉匆?hào)在shell中會(huì)將01234作為一個(gè)命令來(lái)執(zhí)行,但是01234不是一個(gè)命令。-t表示先打印命令,然后再執(zhí)行。
[b3335@MIC ~]$ echo `01234` 56789 -bash: 01234: command not found 56789
(2)設(shè)置xargs讀入?yún)?shù)時(shí)的結(jié)束標(biāo)識(shí),以逗號(hào)結(jié)束。這里要注意結(jié)束標(biāo)志必須要是單獨(dú)的字段,即以空格或者換行符分隔的字段。
[b3335@MIC ~]$ echo 01234 , 56789|xargs -E "," 01234
(3)將當(dāng)前目錄的所有文件添加后綴名。
ls | xargs -t -i mv {} {}.bak(4)設(shè)置命令行的較大字符數(shù)。參數(shù)默認(rèn)一個(gè)一個(gè)單獨(dú)傳入命令中執(zhí)行。
[b3335@MIC test]$ echo "01234 56789"|xargs -t -s 11 echo 01234 01234 echo 56789 56789
(5)設(shè)置標(biāo)準(zhǔn)輸入中每次多少行作為命令的參數(shù),默認(rèn)是將標(biāo)準(zhǔn)輸入中所有行的歸并到一行一次性傳給命令執(zhí)行。
[b3335@MIC test]$ echo -e "01234\n56789\n01234" | xargs -t -L 2 echo echo 01234 56789 01234 56789 echo 01234 01234
(6)將文件內(nèi)容以空格分隔同行輸出。
//列出文件內(nèi)容 cat test.txt a b c d e f g h i j k l m n o //多行輸入單行輸出: cat test.txt | xargs a b c d e f g h i j k l m n o
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Linux中xargs命令有什么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
網(wǎng)站題目:Linux中xargs命令有什么用-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://www.chinadenli.net/article20/cccijo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷(xiāo)、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容