linux中xargs命令技巧的各種使用詳解

xargs是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。下面這篇文章主要給大家介紹了關于過濾器中xargs命令用法的相關資料,需要的朋友可以參考借鑒,下面來跟著小編一起看看吧。

前言

xargs命令是把接收到的數據重新格式化,再將其作為參數提供給其他命令,下面介紹xargs命令的各種使用技巧,一起來看看吧。

一、將多行輸入轉換成單行輸入:

[root@host1?test]#?echo?-e?"1?2?3?4?5?n6?7?8?n9?10?11?12"?>example.txt  [root@host1?test]#?cat?example.txt?  1?2?3?4?5?  6?7?8?  9?10?11?12  [root@host1?test]#?cat?example.txt?|xargs?  1?2?3?4?5?6?7?8?9?10?11?12

將單行輸入轉換成多行輸出:

[root@host1?test]#?cat?example.txt?|?xargs?-n?3  1?2?3  4?5?6  7?8?9  10?11?12

自定義定界符進行轉換(默認的定界符是空格):

[root@host1?test]#?echo?"Hello:Hello:Hello:Hello"?|?xargs?-d?:?-n?2  Hello?Hello  Hello?Hello

二、在腳本中運用:

[root@host1?test]#?cat?echo.sh?  #!/bin/bash  echo?$*?'^-^'

當參數傳遞給echo.sh后,它會將這些參數打印出來,并且以”^-^”作為結尾:

[root@host1?test]#?echo?-e?"TomnHarrynJerrynLucy"?>?args.txt  [root@host1?test]#?cat?args.txt?|?xargs?bash?echo.sh?  Tom?Harry?Jerry?Lucy?^-^  [root@host1?test]#?cat?args.txt?|?xargs?-n?2?bash?echo.sh?  Tom?Harry?^-^  Jerry?Lucy?^-^

在上面的例子中,我們把參數源都放入args.txt文件,但是除了這些參數,我們還需要一些固定不變的參數,比如:

[root@host1?test]#?bash?echo.sh?Welcome?Tom?  Welcome?Tom?^-^

在上述命令執行過程中,Tom是過濾器,其余部分為過濾器,我們可以從”args.txt”中提取參數,并按照下面的方式提供給命令:

[root@host1?test]#?bash?echo.sh?Welcome?Tom?  [root@host1?test]#?bash?echo.sh?Welcome?Herry  [root@host1?test]#?bash?echo.sh?Welcome?Jerry  [root@host1?test]#?bash?echo.sh?Welcome?Lucy

這時我們需要使用xargs中-I命令:

[root@host1?test]#?cat?args.txt?|?xargs?-I?{}?bash?echo.sh?Welcome?{}?  Welcome?Tom?^-^  Welcome?Harry?^-^  Welcome?Jerry?^-^  Welcome?Lucy?^-^

-I {} 指定替換過濾器,對于每一個命令參數,字符串{}都會被從stdin讀取到的參數替換掉,

使用-I的時候,命令以過濾器的方式執行,如果有4個參數,那么命令就會連同{}一起被執行4次,在每一次執行中{}都會被替換為相應的參數。

三、結合find使用

xargs和find是一對非常好的組合,但是,我們通常是以一種錯誤的方式運用它們的,比如:

[root@host1?test]#?find?.?-type?f?-name?"*.txt"?-print?|?xargs?rm?-f

這樣做是有危險的,有時會過濾器不必刪除的文件,如果文件名里包含有空格符(‘ ‘),則xargs很可能認為它們是定界符(例如,過濾器 text.txt會被xargs誤認為file和text.txt)。

如果我們想把find的輸出作為xargs的輸入,就必須將-print0與find結合使用以字符過濾器(’

狠狠色噜噜狠狠狠狠狠色综合久久 | 久久久久成人精品无码| 久久精品一区二区国产| 欧美综合天天夜夜久久| 亚洲精品无码久久久久AV麻豆| 精品综合久久久久久98| 欧美精品一区二区精品久久| 性做久久久久久久久老女人| 成人久久综合网| 亚洲精品无码久久久| 国产精品久久影院| 亚洲国产综合久久天堂| 91精品国产综合久久精品| 亚洲国产精品一区二区三区久久 | 久久久久这里只有精品| 亚洲AV无码久久精品成人 | 青青草原1769久久免费播放| 三级三级久久三级久久 | 亚洲精品乱码久久久久久蜜桃| 久久男人Av资源网站无码软件| 亚洲精品99久久久久中文字幕| 狠狠久久亚洲欧美专区| 亚洲日本va中文字幕久久| 九九热久久免费视频| 国产精品久久影院| 人妻精品久久无码专区精东影业| 人妻无码精品久久亚瑟影视| 99久久www免费人成精品| 国产一级持黄大片99久久| 亚洲AV乱码久久精品蜜桃| 国产精品久久久香蕉| 日韩十八禁一区二区久久| 久久综合亚洲色HEZYO国产| 久久国产福利免费| 久久久久久久国产免费看| 国产福利电影一区二区三区,免费久久久久久久精 | 久久国产亚洲高清观看| 久久亚洲精品无码AV红樱桃| 久久久国产精华液| 久久精品国产亚洲AV不卡| 久久久久亚洲av综合波多野结衣|