国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

Linux xargs命令詳細介紹

2020-07-27 18:59:05
字體:
來源:轉載
供稿:網友

 Linux xargs命令

1.功能:

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

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

find /sbin -perm +700 |ls -l     //這個命令是錯誤,因為標準輸入不能作為ls的參數find /sbin -perm +700 |xargs ls -l  //這樣才是正確的

2.命令格式

xargs [選項] [command]

3.選項說明:

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

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

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

(2)設置xargs讀入參數時的結束標識,以逗號結束。這里要注意結束標志必須要是單獨的字段,即以空格或者換行符分隔的字段。

[b3335@MIC ~]$ echo 01234 , 56789|xargs -E ","01234

(3)將當前目錄的所有文件添加后綴名。

ls | xargs -t -i mv {} {}.bak

(4)設置命令行的最大字符數。參數默認一個一個單獨傳入命令中執行。

[b3335@MIC test]$ echo "01234 56789"|xargs -t -s 11echo 01234 01234echo 56789 56789

(5)設置標準輸入中每次多少行作為命令的參數,默認是將標準輸入中所有行的歸并到一行一次性傳給命令執行。

[b3335@MIC test]$ echo -e "01234/n56789/n01234" | xargs -t -L 2 echo echo 01234 56789 01234 56789echo 01234 01234

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

//列出文件內容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

參考文獻

[1]Xargs用法詳解

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宽城| 惠安县| 聊城市| 中卫市| 定西市| 大埔县| 麟游县| 宁阳县| 大理市| 汤原县| 诸城市| 高阳县| 昌江| 于田县| 宾川县| 青田县| 梨树县| 阿拉善右旗| 西林县| 堆龙德庆县| 清苑县| 潮安县| 墨江| 方正县| 连平县| 内黄县| 剑阁县| 林芝县| 泽州县| 商河县| 南靖县| 乌鲁木齐县| 景德镇市| 长海县| 长治市| 遂宁市| 谢通门县| 中西区| 盘山县| 孟村| 夏邑县|