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

主頁 > 知識庫 > linux shell腳本學習xargs命令使用詳解

linux shell腳本學習xargs命令使用詳解

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

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

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

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

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

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

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

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

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

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

5. 拷貝所有的圖片文件到一個外部的硬盤驅動

# 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.

例如,下面的命令:

復制代碼 代碼如下:

rm `find /path -type f`

如果path目錄下文件過多就會因為“參數列表過長”而報錯無法執行。但改用xargs以后,問題即獲解決。

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

xargs命令應該緊跟在管道操作符之后,它以標準輸入作為主要的源數據流,并使用stdin并通過提供命令行參數來執行其他命令,例如:

復制代碼 代碼如下:

command | xargs

實例應用1,將多行輸入轉換為單行輸出:

復制代碼 代碼如下:

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

實例應用2,將單行輸入轉換為多行輸出:

復制代碼 代碼如下:

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

空格是默認的定界符,-n 表示每行顯示幾個參數

還可以使用-d參數來分隔參數,如下:

復制代碼 代碼如下:

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

實例應用3,讀取stdin,將格式化參數傳遞給命令

復制代碼 代碼如下:

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

#需求1:輸出多個參數
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:一次性提供所有的命令參數
amosli@amosli-pc:~/learn$ sh cecho.sh arg1 arg2 arg3
arg1 arg1 arg2 arg3#

#針對需求1、2,使用xargs代替,先用vi建一個新文件args.txt,如下:
amosli@amosli-pc:~/learn$ cat args.txt
arg1
arg2
arg3
#批量輸出參數:
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#
#一次性輸出所有參數:
amosli@amosli-pc:~/learn$ cat args.txt | xargs sh cecho.sh ;
arg1 arg2 arg3#

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

復制代碼 代碼如下:

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的解決方案:

復制代碼 代碼如下:

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

#-I {}批定了替換字符串,字符串{}會被從stdin讀取到的參數所替換,使用-I時,能循環按要求替換相應的參數

實例應用4,結合find使用xargs

前面已經舉過例子,這里要注意的是文件名稱定界符要以字符null來分隔輸出,如下所示,否則可能會誤刪文件

復制代碼 代碼如下:

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

其他:

復制代碼 代碼如下:

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

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

標簽:馬鞍山 邵陽 金昌 赤峰 巴彥淖爾 淘寶邀評 許昌 婁底

巨人網絡通訊聲明:本文標題《linux shell腳本學習xargs命令使用詳解》,本文關鍵詞  linux,shell,腳本,學習,xargs,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《linux shell腳本學習xargs命令使用詳解》相關的同類信息!
  • 本頁收集關于linux shell腳本學習xargs命令使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美一级国产精品| 色诱亚洲精品久久久久久| 午夜影院在线观看欧美| 激情都市一区二区| 91国偷自产一区二区使用方法| 日韩欧美国产午夜精品| 日韩不卡一区二区| 欧美日本一区二区| 麻豆91免费看| 2021中文字幕一区亚洲| 国产美女在线精品| 国产清纯美女被跳蛋高潮一区二区久久w | 国产乱人伦偷精品视频不卡| 日韩一区二区在线看片| 久久99精品久久久久久动态图| 日韩欧美成人一区二区| 成人听书哪个软件好| 亚洲国产色一区| 久久综合久久综合九色| 在线观看91精品国产入口| 调教+趴+乳夹+国产+精品| 欧美一区欧美二区| 国产一区999| 日韩一区二区视频在线观看| 91精品国产美女浴室洗澡无遮挡| 国产美女视频91| 五月综合激情网| 国产日韩欧美综合一区| 亚洲视频一区二区在线| 中文字幕第一区综合| 欧美日韩一区成人| 91精品午夜视频| 欧美va亚洲va在线观看蝴蝶网| 欧美激情综合网| 日韩精品一二区| 99久精品国产| 久久综合九色综合欧美就去吻| 久久久久久久久久久99999| 亚洲成人精品在线观看| 韩日欧美一区二区三区| 欧洲一区在线观看| 国产精品剧情在线亚洲| 亚洲国产欧美一区二区三区丁香婷| 国产91精品一区二区麻豆网站| 日韩西西人体444www| 午夜国产精品影院在线观看| 99在线精品视频| 亚洲午夜久久久久久久久电影院| 国产老妇另类xxxxx| 日本一区二区不卡视频| 国产在线一区观看| 久久综合久久综合亚洲| 国产成人综合亚洲网站| 亚洲精品你懂的| 91官网在线免费观看| 一区二区三区在线影院| 一本大道久久a久久精二百 | 91精品国产麻豆| 久久97超碰色| 亚洲精品国产一区二区三区四区在线| av午夜一区麻豆| 亚洲一区影音先锋| 欧美一区二区三区啪啪| 国产盗摄视频一区二区三区| 中文字幕五月欧美| 91精品国产综合久久国产大片 | 欧美日韩久久久| 久久国内精品自在自线400部| 国产精品福利电影一区二区三区四区| 欧美精品一卡二卡| 成人av午夜电影| 国产精品夜夜嗨| 激情综合色播五月| 亚洲成a人片在线观看中文| 国产精品每日更新在线播放网址| 欧美美女一区二区| 在线一区二区视频| 91小视频免费看| 久久99精品国产麻豆不卡| 石原莉奈在线亚洲二区| 亚洲美女在线国产| 亚洲高清不卡在线观看| 一区二区三区在线观看动漫| 亚洲欧美在线aaa| 国产精品久99| 一区二区三区欧美日韩| 一区二区三区欧美在线观看| 国产精品女人毛片| 亚洲欧美日韩人成在线播放| 中文字幕一区二区三区不卡| 亚洲精品欧美在线| 亚洲精品ww久久久久久p站| 久久久久久一二三区| 国产精品每日更新| 亚洲欧洲日韩女同| 亚洲第一福利一区| 国产乱人伦偷精品视频不卡| 99热精品国产| 69堂成人精品免费视频| 9191精品国产综合久久久久久| 91精品国产免费| 亚洲欧洲精品天堂一级| 午夜欧美大尺度福利影院在线看| 国产精品99久| 91福利区一区二区三区| 欧美videossexotv100| 亚洲主播在线播放| 国产一区二区不卡老阿姨| 欧美色中文字幕| 日韩美女视频一区二区| 国产精品69毛片高清亚洲| 欧美日韩黄色一区二区| 亚洲视频香蕉人妖| www.亚洲色图.com| 亚洲国产一区二区三区青草影视| 99久久精品99国产精品| 日韩亚洲国产中文字幕欧美| 亚洲激情网站免费观看| 99国产一区二区三精品乱码| 久久久久久久久蜜桃| 国产精品一线二线三线| 国产亚洲精品aa午夜观看| 国内外成人在线| 久久精品无码一区二区三区| 激情综合网av| 精品国产免费人成电影在线观看四季 | 亚洲精品国产精品乱码不99| 国产毛片精品一区| 久久精品一区二区三区四区| 国产成人在线网站| 国产精品人人做人人爽人人添| 成人免费毛片a| 亚洲免费在线播放| 91精品欧美福利在线观看| 久久www免费人成看片高清| 久久精品亚洲乱码伦伦中文| 91在线视频在线| 美女看a上一区| 国产精品美女久久久久久2018| 9i看片成人免费高清| 日本系列欧美系列| 日本一区二区不卡视频| 欧美中文字幕亚洲一区二区va在线| 日韩成人免费在线| 国产精品国产三级国产aⅴ中文| 欧美日产国产精品| voyeur盗摄精品| 九九精品一区二区| 午夜电影一区二区三区| 亚洲欧洲色图综合| 久久精品一区二区三区不卡牛牛| 欧美久久久久久久久| 日本道在线观看一区二区| 国产乱子伦视频一区二区三区| 亚洲国产日韩一区二区| 欧美激情一区在线| 国产亚洲精品免费| wwwwxxxxx欧美| 久久久亚洲国产美女国产盗摄| 日韩你懂的电影在线观看| 欧美色视频一区| 在线观看中文字幕不卡| 成人av网站在线| 色婷婷久久久亚洲一区二区三区 | 九色综合狠狠综合久久| 亚洲欧美一区二区在线观看| 国产亚洲欧美一区在线观看| 日韩欧美一级二级| 精品国产一区二区三区不卡 | 国产一区二区0| 久久精品国产精品亚洲综合| 国产制服丝袜一区| 国内不卡的二区三区中文字幕 | 中文无字幕一区二区三区| 中文字幕制服丝袜一区二区三区| 国产欧美日韩视频一区二区| 亚洲欧美一区二区三区国产精品| 亚洲国产精品久久一线不卡| 天天做天天摸天天爽国产一区| 亚洲国产日韩精品| 国产精一区二区三区| 国产成人午夜精品影院观看视频| 99精品欧美一区| 一本色道a无线码一区v| 色综合天天视频在线观看| 色妞www精品视频| 欧美日韩激情一区二区三区| 91精品国产综合久久蜜臀| 日韩欧美精品在线视频| 色婷婷香蕉在线一区二区| 91在线视频播放| 在线观看av一区二区| 日韩一级视频免费观看在线| 在线不卡免费欧美| 国产精品激情偷乱一区二区∴| 精品国产一区二区三区四区四| 欧美精品日韩综合在线| 久久九九国产精品| 午夜私人影院久久久久| 国产黑丝在线一区二区三区|