婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > linux shell腳本學(xué)習(xí)xargs命令使用詳解

linux shell腳本學(xué)習(xí)xargs命令使用詳解

熱門標(biāo)簽:揭陽(yáng)智能電話機(jī)器人推薦 江蘇云電銷機(jī)器人公司 華鋒e路航港口地圖標(biāo)注 如果做線上地圖標(biāo)注 客服外呼系統(tǒng)怎么樣 百度地圖標(biāo)注錯(cuò)了有責(zé)任嗎 河南信譽(yù)好的不封卡電話外呼系統(tǒng) 地圖標(biāo)注員都是年輕人 打電話機(jī)器人接我是他的秘書

xargs是給命令傳遞參數(shù)的一個(gè)過(guò)濾器,也是組合多個(gè)命令的一個(gè)工具。它把一個(gè)數(shù)據(jù)流分割為一些足夠小的塊,以方便過(guò)濾器和命令進(jìn)行處理。通常情況下,xargs從管道或者stdin中讀取數(shù)據(jù),但是它也能夠從文件的輸出中讀取數(shù)據(jù)。xargs的默認(rèn)命令是echo,這意味著通過(guò)管道傳遞給xargs的輸入將會(huì)包含換行和空白,不過(guò)通過(guò)xargs的處理,換行和空白將被空格取代。

xargs 是一個(gè)強(qiáng)有力的命令,它能夠捕獲一個(gè)命令的輸出,然后傳遞給另外一個(gè)命令,下面是一些如何有效使用xargs 的實(shí)用例子。
1. 當(dāng)你嘗試用rm 刪除太多的文件,你可能得到一個(gè)錯(cuò)誤信息:/bin/rm Argument list too long. 用xargs 去避免這個(gè)問(wèn)題

find ~ -name ‘*.log' -print0 | xargs -0 rm -f

2. 獲得/etc/ 下所有*.conf 結(jié)尾的文件列表,有幾種不同的方法能得到相同的結(jié)果,下面的例子僅僅是示范怎么實(shí)用xargs ,在這個(gè)例子中實(shí)用 xargs將find 命令的輸出傳遞給ls -l

# find /etc -name "*.conf" | xargs ls –l

3. 假如你有一個(gè)文件包含了很多你希望下載的URL, 你能夠使用xargs 下載所有鏈接

# cat url-list.txt | xargs wget –c

4. 查找所有的jpg 文件,并且壓縮它

# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

5. 拷貝所有的圖片文件到一個(gè)外部的硬盤驅(qū)動(dòng)

# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

EXAMPLES
find /tmp -name core -type f -print | xargs /bin/rm -f
Find files named core in or below the directory /tmp and delete them. Note that this will work incorrectly if there are any filenames containing newlines or spaces.

find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
Find files named core in or below the directory /tmp and delete them, processing filenames in such a way that file or directory names containing spaces or newlines are correctly handled.

find /tmp -depth -name core -type f -delete
Find files named core in or below the directory /tmp and delete them, but more efficiently than in the previous example (because we avoid the need to use fork(2) and exec(2) to launch rm and we don't need the extra xargs process).

cut -d: -f1 /etc/passwd | sort | xargs echo
Generates a compact listing of all the users on the system.

xargs sh -c 'emacs "$@" /dev/tty' emacs
Launches the minimum number of copies of Emacs needed, one after the other, to edit the files listed on xargs' standard input. This example achieves the same effect as BSD's -o option, but in a more flexible and portable way.

例如,下面的命令:

復(fù)制代碼 代碼如下:

rm `find /path -type f`

如果path目錄下文件過(guò)多就會(huì)因?yàn)椤皡?shù)列表過(guò)長(zhǎng)”而報(bào)錯(cuò)無(wú)法執(zhí)行。但改用xargs以后,問(wèn)題即獲解決。

復(fù)制代碼 代碼如下:

find /path -type f -print0 | xargs -0 rm

本例中xargs將find產(chǎn)生的長(zhǎng)串文件列表拆散成多個(gè)子串,然后對(duì)每個(gè)子串調(diào)用rm。-print0表示輸出以null分隔(-print使用換行);-0表示輸入以null分隔。這樣要比如下使用find命令效率高的多。

復(fù)制代碼 代碼如下:

find /path -type f -exec rm '{}' \;

xargs命令應(yīng)該緊跟在管道操作符之后,它以標(biāo)準(zhǔn)輸入作為主要的源數(shù)據(jù)流,并使用stdin并通過(guò)提供命令行參數(shù)來(lái)執(zhí)行其他命令,例如:

復(fù)制代碼 代碼如下:

command | xargs

實(shí)例應(yīng)用1,將多行輸入轉(zhuǎn)換為單行輸出:

復(fù)制代碼 代碼如下:

amosli@amosli-pc:~/learn$ cat example.txt
1 2 3 4 5
6 7
8
amosli@amosli-pc:~/learn$ cat example.txt | xargs
1 2 3 4 5 6 7 8

實(shí)例應(yīng)用2,將單行輸入轉(zhuǎn)換為多行輸出:

復(fù)制代碼 代碼如下:

amosli@amosli-pc:~/learn$ cat example.txt | xargs -n 2
1 2
3 4
5 6
7 8

空格是默認(rèn)的定界符,-n 表示每行顯示幾個(gè)參數(shù)

還可以使用-d參數(shù)來(lái)分隔參數(shù),如下:

復(fù)制代碼 代碼如下:

amosli@amosli-pc:~/learn$ echo "splitXhiXamosliXsplit" | xargs -d "X" -n 1
split
hi
amosli
split

實(shí)例應(yīng)用3,讀取stdin,將格式化參數(shù)傳遞給命令

復(fù)制代碼 代碼如下:

#定義一個(gè)echo命令每次在輸出參數(shù)后都加上#
amosli@amosli-pc:~/learn$ cat cecho.sh
echo $*'#'

#需求1:輸出多個(gè)參數(shù)
amosli@amosli-pc:~/learn$ sh cecho.sh arg1
arg1#
amosli@amosli-pc:~/learn$ sh cecho.sh arg2
arg2#
amosli@amosli-pc:~/learn$ sh cecho.sh arg3
arg3#

#需求2:一次性提供所有的命令參數(shù)
amosli@amosli-pc:~/learn$ sh cecho.sh arg1 arg2 arg3
arg1 arg1 arg2 arg3#

#針對(duì)需求1、2,使用xargs代替,先用vi建一個(gè)新文件args.txt,如下:
amosli@amosli-pc:~/learn$ cat args.txt
arg1
arg2
arg3
#批量輸出參數(shù):
amosli@amosli-pc:~/learn$ cat args.txt | xargs -n 1
arg1
arg2
arg3
amosli@amosli-pc:~/learn$ cat args.txt | xargs -n 2 sh cecho.sh
arg1 arg2#
arg3#
#一次性輸出所有參數(shù):
amosli@amosli-pc:~/learn$ cat args.txt | xargs sh cecho.sh ;
arg1 arg2 arg3#

需求3,如何將參數(shù)嵌入到固定的命令行中?如下所示:

復(fù)制代碼 代碼如下:

amosli@amosli-pc:~/learn$ sh cecho.sh -p args1 -1
-p args1 -1#
amosli@amosli-pc:~/learn$ sh cecho.sh -p args2 -1
-p args2 -1#
amosli@amosli-pc:~/learn$ sh cecho.sh -p args3 -1
-p args3 -1#

使用xargs的解決方案:

復(fù)制代碼 代碼如下:

amosli@amosli-pc:~/learn$ cat args.txt | xargs -I {} sh cecho.sh -p {} -1
-p arg1 -1#
-p arg2 -1#
-p arg3 -1#

#-I {}批定了替換字符串,字符串{}會(huì)被從stdin讀取到的參數(shù)所替換,使用-I時(shí),能循環(huán)按要求替換相應(yīng)的參數(shù)

實(shí)例應(yīng)用4,結(jié)合find使用xargs

前面已經(jīng)舉過(guò)例子,這里要注意的是文件名稱定界符要以字符null來(lái)分隔輸出,如下所示,否則可能會(huì)誤刪文件

復(fù)制代碼 代碼如下:

amosli@amosli-pc:~/learn$ find . -type f -name "*test*.txt" -print0 | xargs -0 rm -f

其他:

復(fù)制代碼 代碼如下:

cat file | ( while read arg; do cat $arg; done )
cat file | xargs -I {} cat {}

您可能感興趣的文章:
  • Linux xargs命令的使用
  • Linux基礎(chǔ)之xargs命令的入門實(shí)例
  • Linux 下xargs命令詳解及xargs與管道的區(qū)別
  • Linux xargs命令詳細(xì)介紹
  • 在Linux上使用xargs命令的詳細(xì)教程

標(biāo)簽:馬鞍山 邵陽(yáng) 金昌 赤峰 巴彥淖爾 淘寶邀評(píng) 許昌 婁底

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux shell腳本學(xué)習(xí)xargs命令使用詳解》,本文關(guān)鍵詞  linux,shell,腳本,學(xué)習(xí),xargs,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux shell腳本學(xué)習(xí)xargs命令使用詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于linux shell腳本學(xué)習(xí)xargs命令使用詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久99精品视频| 亚洲视频综合在线| 另类小说综合欧美亚洲| 日韩欧美精品在线| 国产在线乱码一区二区三区| 久久久99精品免费观看不卡| 丁香天五香天堂综合| 亚洲男人的天堂av| 欧美日韩国产bt| 韩日av一区二区| 专区另类欧美日韩| 欧美日韩国产影片| 精东粉嫩av免费一区二区三区| 日本一区二区三区在线观看| 99久久综合狠狠综合久久| 亚洲电影第三页| 久久久久成人黄色影片| 成人av中文字幕| 午夜精品一区在线观看| 日韩欧美一级精品久久| 成人天堂资源www在线| 亚洲国产精品一区二区久久 | 久久婷婷国产综合国色天香 | 亚洲福利国产精品| 欧美不卡在线视频| 99re热视频精品| 久久www免费人成看片高清| 国产精品女上位| 欧美一区二区日韩| av一区二区三区在线| 日韩av电影天堂| 亚洲欧美一区二区在线观看| 91精品国产综合久久国产大片| 岛国一区二区三区| 免费观看一级特黄欧美大片| 中文字幕欧美日韩一区| 在线不卡中文字幕| av一区二区久久| 韩国av一区二区三区| 亚洲国产日韩av| 国产精品美女一区二区| 91精品国产aⅴ一区二区| 成人黄色网址在线观看| 蜜臀91精品一区二区三区| 亚洲欧美日韩国产另类专区| 久久男人中文字幕资源站| 欧美精选一区二区| 色婷婷综合久久| 粉嫩蜜臀av国产精品网站| 日本不卡在线视频| 亚洲国产婷婷综合在线精品| 国产精品三级电影| 久久综合色天天久久综合图片| 欧美日韩小视频| 在线国产电影不卡| 91丨porny丨在线| 成人在线视频一区二区| 国产精品一区二区果冻传媒| 日本午夜精品一区二区三区电影| 亚洲午夜电影在线| 亚洲男女一区二区三区| 亚洲素人一区二区| 国产欧美日本一区视频| 久久久一区二区| 久久日一线二线三线suv| 欧美日本高清视频在线观看| 91麻豆自制传媒国产之光| 懂色av一区二区三区免费观看| 国产精品资源站在线| 极品尤物av久久免费看| 日韩精品亚洲专区| 日韩精彩视频在线观看| 亚洲第一激情av| 亚洲18影院在线观看| 亚洲第一搞黄网站| 日本一不卡视频| 久久99久久久久久久久久久| 激情综合亚洲精品| 国产一区美女在线| 国产成人亚洲综合a∨婷婷图片| 国产黄色精品视频| 国产成人精品一区二区三区网站观看| 国产精品一区二区在线看| 国产精品夜夜嗨| 91亚洲精品乱码久久久久久蜜桃| www.欧美日韩| 91久久线看在观草草青青| 欧美三级中文字幕| 日韩欧美精品在线| 亚洲国产精品t66y| 亚洲色图色小说| 亚洲成在线观看| 九九精品一区二区| www.久久久久久久久| 在线观看免费视频综合| 91精品国产综合久久久久| 精品国产乱码久久久久久影片| 中文字幕欧美国产| 樱桃国产成人精品视频| 日韩1区2区日韩1区2区| 国产精品一区二区三区99| 91色|porny| 日韩视频在线观看一区二区| 国产精品婷婷午夜在线观看| 曰韩精品一区二区| 麻豆成人久久精品二区三区小说| 粉嫩一区二区三区性色av| 色女孩综合影院| 精品国产免费人成电影在线观看四季| 亚洲国产精品成人久久综合一区| 亚洲国产精品一区二区www| 久久99国产精品尤物| 不卡大黄网站免费看| 欧美顶级少妇做爰| 欧美国产精品一区二区三区| 一区二区三区在线观看视频| 美国十次了思思久久精品导航| 成人免费视频网站在线观看| 欧美女孩性生活视频| 国产欧美一二三区| 日本大胆欧美人术艺术动态| 99久久99久久综合| 精品国一区二区三区| 亚洲日本电影在线| 国产在线播放一区三区四| 在线观看一区二区精品视频| 国产欧美一区二区精品性| 日韩专区中文字幕一区二区| 99久久免费精品高清特色大片| 精品捆绑美女sm三区| 艳妇臀荡乳欲伦亚洲一区| 国产精品1区2区3区在线观看| 欧美精品欧美精品系列| 亚洲天堂免费在线观看视频| 国产麻豆一精品一av一免费| 欧美精品久久久久久久久老牛影院| 欧美激情在线观看视频免费| 看片网站欧美日韩| 欧美日韩国产综合久久| 亚洲美女精品一区| 不卡在线观看av| 久久看人人爽人人| 麻豆免费精品视频| 欧美丰满少妇xxxbbb| 亚洲国产精品一区二区久久| 色婷婷综合久久久中文字幕| 国产精品毛片久久久久久久| 国产精品香蕉一区二区三区| 欧美电影免费观看高清完整版在线观看 | 亚洲你懂的在线视频| 国产99精品国产| 久久久久久久久久久久久女国产乱| 一区二区三区在线视频观看58| va亚洲va日韩不卡在线观看| 国产日韩影视精品| 国产成人日日夜夜| 国产日韩欧美a| 国产精品一区免费在线观看| 久久精品日产第一区二区三区高清版| 精品一区二区综合| 7799精品视频| 日本亚洲视频在线| 色一区在线观看| 亚洲国产aⅴ成人精品无吗| eeuss鲁片一区二区三区在线看| 欧美精品一区视频| 樱桃国产成人精品视频| 欧美自拍偷拍一区| 一区二区三区四区激情| 99这里只有精品| 亚洲一区二区三区四区的| 91丨国产丨九色丨pron| 国产精品成人在线观看| 国产精品一二三在| 国产精品超碰97尤物18| 99久久综合狠狠综合久久| 中文字幕制服丝袜一区二区三区 | 成人一区二区三区视频在线观看 | 亚洲国产欧美另类丝袜| 欧美综合久久久| 蜜臀av一区二区| 精品日韩在线观看| 国产一区二区美女诱惑| 国产精品的网站| 91精品91久久久中77777| 亚洲国产综合色| 日韩一二三区视频| 日韩中文字幕不卡| 欧美日韩国产小视频| 亚洲综合一区二区| 91热门视频在线观看| 亚洲一区二区三区四区在线| 91精品国产综合久久久久久久 | 91精品国产综合久久蜜臀 | 一区二区三区在线观看国产 | 国产精品国产三级国产| 色婷婷综合久久久久中文一区二区| 亚洲成av人片观看| 久久精品一二三| 欧洲视频一区二区|