天天看點

Linux環境中的xargs指令使用技巧

作者:JasonTang

簡介:xargs(eXtended ARGuments),主要用于将标準輸入的資料轉換成指令行參數。xargs 能夠處理管道或檔案中傳遞的資料,并将這些資料作為參數提供給其他指令。這在需要處理大量檔案或輸出結果時尤為有用。xargs 指令在 Linux 中是一個非常強大的工具,用于建構并執行指令行,能夠将标準輸入資料轉換成指令行參數,進而允許使用者以管道方式将一系列字元串傳遞給其他指令。該工具以其最基本的形式從标準輸入 (stdin) 讀取資料,并根據讀取的輸入執行指令(作為參數提供給它)一次或多次。輸入中的任何空白和空格都被視為分隔符,而空白行将被忽略。

本文主要介紹的是Linux系統中xargs指令的使用方法。詳細内容請參考下文。

一、Linux系統

1.通路Linux系統

Linux環境中的xargs指令使用技巧

2.檢視xargs幫助資訊

Linux環境中的xargs指令使用技巧

二、xargs基礎知識

1.xargs文法結構

文法結構:

Linux環境中的xargs指令使用技巧

備注:xargs指令的常用選項說明如下。

Linux環境中的xargs指令使用技巧

2.awk指令作用

說明:xargs指令的作用是從标準輸入或另一個指令的輸出中讀取文本行,并将其轉換為指令并執行。其執行格式如下:

Linux環境中的xargs指令使用技巧

備注:xargs指令的詳細作用如下:

Linux環境中的xargs指令使用技巧

三、xargs使用執行個體

1.結合rm指令删除相應的檔案

執行指令# ls *.txt | xargs rm 删除目前目錄下的作用txt檔案

Linux環境中的xargs指令使用技巧

2.使用-I{}參數指定替換字元串

執行指令# ls *.txt | xargs -I{} cp {} /usr/local/tmp1

Linux環境中的xargs指令使用技巧

3.使用-d參數指定分隔符

執行指令# echo "file1.txt file2.txt file3.txt" | xargs mkdir建立三個檔案file1.txt,file2.txt,file3.txt

Linux環境中的xargs指令使用技巧

執行指令# echo "name1,name2,name3" | xargs -d,

Linux環境中的xargs指令使用技巧

備注:xargs指令的-d 選項可以自定義一個定界符。

執行指令# echo "name1,name2,name3,name4,name5,name6" | xargs -d, -n2

Linux環境中的xargs指令使用技巧

備注:xargs指令的-d 選項還可以結合參數-n一起分行使用。

4. 結合find指令删除特定檔案

執行指令# find . -name "*.bak" -type f | xargs rm 删除bak檔案。

Linux環境中的xargs指令使用技巧

5. 結合find指令修改檔案權限

執行指令# find . -name "*.sh" -type f | xargs chmod 755 修改權限

Linux環境中的xargs指令使用技巧

6. 結合grep指令查找包含特定文本的檔案

執行指令# grep -l "ERROR" *.log | xargs -I {} mv {} /usr/local/errorlogs

Linux環境中的xargs指令使用技巧

備注:這裡 -I選項讓 grep 隻輸出包含比對文本的檔案名,然後 xargs 将其移動到 /usr/local/errorlogs 目錄。

7.并行執行指令

執行指令# ls *.jpg | xargs -n 1 -P 3 gzip

Linux環境中的xargs指令使用技巧

備注:這将一次性啟動 3個 gzip 程序來并行壓縮 .jpg檔案。

8.查找并打包壓縮jpg檔案

執行指令# find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz

Linux環境中的xargs指令使用技巧