麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Linux Shell > 正文

Linux xargs命令詳細(xì)介紹

2020-07-27 18:59:05
字體:
供稿:網(wǎng)友

 Linux xargs命令

1.功能:

xargs可以將stdin中以空格或換行符進(jìn)行分隔的數(shù)據(jù),形成以空格分隔的參數(shù)(arguments),傳遞給其他命令。因為以空格作為分隔符,所以有一些文件名或者其他意義的名詞內(nèi)含有空格的時候,xargs可能會誤判。簡單來說,xargs是給其他命令傳遞參數(shù)的一個過濾器,是構(gòu)建單行命令的重要組件之一。

之所以要用到xargs,是因為由于很多命令不支持使用管道|來傳遞參數(shù),例如:

find /sbin -perm +700 |ls -l     //這個命令是錯誤,因為標(biāo)準(zhǔn)輸入不能作為ls的參數(shù)find /sbin -perm +700 |xargs ls -l  //這樣才是正確的

2.命令格式

xargs [選項] [command]

3.選項說明:

-0:如果輸入的stdin含有特殊字符,例如反引號`、反斜杠/、空格等字符時,xargs可以將它還原成一般字符。為xargs的默認(rèn)選項。-e <flag>,-E <flag>,--eof=<eof-str>:eof是end of file string的意思。flag可以是一個字符串或者是由空格分隔的多個字符串,當(dāng)xargs分析到這個flag時,就會停止工作。見示例2。-p:當(dāng)每次執(zhí)行一個argument的時候詢問一次用戶。-n <num>:表示命令在執(zhí)行的時候一次使用的argument的個數(shù),由num指定,默認(rèn)是用所有的參數(shù)。-t:表示先打印命令,然后再執(zhí)行。-a <file>:從文件中讀入作為sdtin。-i,-I:其中-I某些Linux版本不支持。將xargs的輸出每一項參數(shù),單獨(dú)賦值給后面的命令,參數(shù)需要用{}代替。見示例3。-r:或者--no-run-if-empty,當(dāng)xargs的輸入為空的時候則停止xargs,不用再去執(zhí)行后面的命令了,-r是xargs的默認(rèn)選項。-s <num>:命令行的最大字符數(shù),指的是xargs后面那個命令的最大命令行字符數(shù),包括命令、空格和換行符。每個參數(shù)單獨(dú)傳入xargs后面的命令。見示例4。-L <line_num>:設(shè)置標(biāo)準(zhǔn)輸入中最大的行數(shù)作為命令每一次執(zhí)行的參數(shù)。見示例5。-d <delim>, --delimiter=<delim>: xargs處理標(biāo)準(zhǔn)輸入默認(rèn)是按換行符和空格作為分隔符,輸出arguments的分隔符是空格,這里修改xargs處理標(biāo)準(zhǔn)輸入時的分隔符。-x:eXit的意思,主要是配合-s使用,當(dāng)命令行字符數(shù)大于-s指定的數(shù)值時,退出xargs。-P:修改最大的進(jìn)程數(shù),默認(rèn)是1,為0時候為as many as it can。該選項比較少用,目前還不清楚該用法。

4.用法示例

(1)將shell的特殊字符還原為一般字符。

[b3335@MIC ~]$ echo '`0123`4 56789'|xargs -t echoecho `0123`4 56789 `0123`4 56789

如果直接進(jìn)行如下操作,會報無法找到命令01234的錯誤,因為反引號在shell中會將01234作為一個命令來執(zhí)行,但是01234不是一個命令。-t表示先打印命令,然后再執(zhí)行。

[b3335@MIC ~]$ echo `01234` 56789-bash: 01234: command not found56789

(2)設(shè)置xargs讀入?yún)?shù)時的結(jié)束標(biā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)一個一個單獨(dú)傳入命令中執(zhí)行。

[b3335@MIC test]$ echo "01234 56789"|xargs -t -s 11echo 01234 01234echo 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 56789echo 01234 01234

(6)將文件內(nèi)容以空格分隔同行輸出。

//列出文件內(nèi)容cat test.txta b c d ef g h i j k l m n o//多行輸入單行輸出: cat test.txt | xargsa b c d e f g h i j k l m n o

參考文獻(xiàn)

[1]Xargs用法詳解

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美黑人伦理 | 深夜激情视频 | 国产精品久久久久久影院8一贰佰 | 亚洲午夜久久久精品一区二区三区 | 久久久精品视频免费看 | 欧美一级特黄aaaaaaa什 | 777午夜精品视频在线播放 | 国产一区二区三区视频在线观看 | 国产午夜亚洲精品理论片大丰影院 | 成人免费看毛片 | www日韩在线观看 | 亚洲国产馆 | 91亚洲精品一区二区福利 | 日韩黄色一级视频 | 免费久久精品 | 色中色综合网 | 大学生a级毛片免费视频 | 久久成人亚洲 | 色戒在线版| 欧美伦交| 国产羞羞视频在线观看免费应用 | 日韩电影av在线 | 特级西西444www大精品视频免费看 | 国产一区二区免费在线观看 | 一级毛片免费观看在线 | 欧美成人精品一区二区男人小说 | 毛片免| 久久草在线视频免费 | 亚洲国产美女视频 | 91免费视频版 | 草草视频免费观看 | 久久国产在线观看 | 日韩大片在线永久观看视频网站免费 | 久久免费视频8 | 久久精品在线免费观看 | av色先锋| 中文字幕在线成人 | 国产精品久久久久久久久久久久久久久 | 国产精品av久久久久久久久久 | 草久免费 | av观看国产 |