婷婷综合国产,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
    国产片一区二区| www国产成人| 日韩一区二区三区电影| 午夜精品影院在线观看| 欧美伊人久久大香线蕉综合69| 中文字幕一区不卡| 成人一道本在线| 国产精品看片你懂得| 北条麻妃一区二区三区| 亚洲欧美日韩人成在线播放| 欧洲人成人精品| 亚洲va国产天堂va久久en| 欧美巨大另类极品videosbest | 欧美日韩国产大片| 夜夜精品视频一区二区| 91精品一区二区三区久久久久久| 日韩av电影天堂| 欧美精彩视频一区二区三区| av网站一区二区三区| 视频在线观看91| 久久午夜羞羞影院免费观看| 成人精品在线视频观看| 亚洲激情自拍偷拍| 欧美午夜在线观看| 国产精品一二三四五| 亚洲少妇屁股交4| 91精品国产品国语在线不卡| 国产69精品久久777的优势| 亚洲六月丁香色婷婷综合久久| 欧美日韩精品一区二区三区| 国产另类ts人妖一区二区| 亚洲欧美日韩国产另类专区| 日韩一区二区在线观看视频| 色av一区二区| 欧美日韩电影在线| 偷拍自拍另类欧美| 久久夜色精品国产欧美乱极品| 欧美综合一区二区三区| 在线不卡a资源高清| 欧美精品黑人性xxxx| 久久激情五月婷婷| 亚洲成人www| 不卡一二三区首页| 中文字幕av一区二区三区高 | 一区二区三区成人在线视频| 91精品国产综合久久国产大片 | 轻轻草成人在线| 国产精品欧美一区喷水| 99久久99久久综合| 日韩成人精品视频| 一区二区三区精品视频在线| 国产日韩三级在线| 欧美一区二区福利在线| 色婷婷综合激情| 成人黄色av电影| 国产精品乡下勾搭老头1| 日本中文一区二区三区| 亚洲黄色录像片| 一区二区中文视频| 亚洲国产精华液网站w| 国产午夜亚洲精品羞羞网站| 亚洲精品一区二区三区99| 欧美mv日韩mv国产网站app| 91精品中文字幕一区二区三区| 色综合久久久久| 色综合中文字幕国产 | 亚洲视频在线观看三级| 国产欧美一区二区精品秋霞影院| 精品毛片乱码1区2区3区| 在线观看91av| 精品日韩一区二区| 欧美精品一区二| 久久久久久久电影| 国产午夜三级一区二区三| 国产女主播视频一区二区| 国产精品久久久久aaaa樱花| 国产精品美女久久久久久久网站| 中文字幕精品一区| 一区二区三区欧美在线观看| 日韩在线a电影| 久草中文综合在线| 丁香激情综合五月| 欧洲在线/亚洲| 欧美一区二区三区在| 亚洲精品在线网站| 久久精品一区蜜桃臀影院| 国产精品免费观看视频| 亚洲一级在线观看| 美国av一区二区| www.色综合.com| 欧美伦理电影网| 精品999久久久| 亚洲人成网站在线| 精品影院一区二区久久久| 狠狠狠色丁香婷婷综合久久五月| 国产精品一区在线观看乱码| 99国产精品视频免费观看| 欧美精品丝袜中出| 国产精品色眯眯| 秋霞国产午夜精品免费视频| 国产不卡视频在线观看| 欧美日韩一区国产| 国产日本亚洲高清| 亚洲午夜影视影院在线观看| 国产美女精品在线| 欧美视频三区在线播放| 精品99久久久久久| 亚洲一线二线三线久久久| 精品中文字幕一区二区| 欧洲激情一区二区| 国产欧美日韩麻豆91| 日韩国产精品久久| 成人av资源下载| 精品国产乱码久久久久久牛牛| 亚洲一区二区三区精品在线| 国产suv一区二区三区88区| 日韩欧美一级二级三级久久久| 亚洲天堂成人在线观看| 精品无人码麻豆乱码1区2区 | 在线观看亚洲成人| 国产精品国产自产拍高清av王其| 麻豆精品一区二区av白丝在线| 色狠狠一区二区三区香蕉| 国产精品免费视频网站| 韩国女主播一区| 777精品伊人久久久久大香线蕉| 亚洲乱码一区二区三区在线观看| 成人精品鲁一区一区二区| 欧美精品一区二区三区在线播放| 香蕉成人伊视频在线观看| 色婷婷精品大在线视频| 综合久久久久久| 风间由美一区二区av101| 久久女同精品一区二区| 美女视频黄久久| 欧美一区二区三区四区在线观看| 午夜婷婷国产麻豆精品| 69堂成人精品免费视频| 日韩制服丝袜av| 日韩免费观看高清完整版 | 91福利社在线观看| 亚洲欧美另类综合偷拍| 不卡的电影网站| 亚洲色图.com| 91久久精品一区二区三| 国产精品视频第一区| 国产91丝袜在线播放| 日本亚洲三级在线| 欧美日韩视频在线观看一区二区三区 | 亚洲电影你懂得| 欧美亚洲日本国产| 一区二区三区自拍| 欧洲在线/亚洲| 免费成人av资源网| 7777精品伊人久久久大香线蕉 | 91精品国产欧美一区二区18| 午夜伊人狠狠久久| 正在播放一区二区| 久久国产尿小便嘘嘘| 欧美性大战久久久久久久蜜臀| 亚洲欧洲日本在线| 色天天综合色天天久久| 亚洲婷婷国产精品电影人久久| 色激情天天射综合网| 亚洲国产综合视频在线观看| 欧美色爱综合网| 亚洲成人av资源| 久久在线观看免费| 国产真实乱子伦精品视频| ww久久中文字幕| 91视频免费观看| 亚洲.国产.中文慕字在线| 日韩欧美激情四射| 国产剧情在线观看一区二区| 精品福利av导航| 色综合天天在线| 国产精品一二三在| 亚洲一区二区偷拍精品| 久久久久久影视| 欧美色电影在线| 成人激情免费视频| 极品少妇一区二区| 亚洲国产va精品久久久不卡综合| 国产午夜精品一区二区三区嫩草 | 国产精品三级电影| 色吊一区二区三区| 国内成人精品2018免费看| 亚洲成人黄色影院| 国产欧美日韩在线观看| 欧美日韩亚洲国产综合| av电影在线观看一区| 狠狠色狠狠色综合系列| 午夜精品免费在线观看| 中文字幕一区二区三区在线不卡| 欧美一区二区福利视频| 日本精品一级二级| www.亚洲色图| 成人app下载| 国产成人免费视频一区| 日本成人在线网站|