91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統中使用xargs命令的教程

發布時間:2021-09-03 15:59:07 來源:億速云 閱讀:127 作者:chen 欄目:系統運維

本篇內容主要講解“Linux系統中使用xargs命令的教程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux系統中使用xargs命令的教程”吧!

xargs命令有兩個要點。第一,你必須列出目標文件。第二,你必須指定對每個文件需要執行的命令或腳本。

這篇教程會涉及三個應用場景,xargs命令被用來處理分布在不同目錄下的文件:

  1.     計算所有文件的行數
        打印指定文件的第一行
        對每個文件執行一個自定義腳本

請看下面這個叫xargstest的目錄(用tree命令以及-i和-f選項顯示了目錄樹結構,這樣可以避免縮進顯示而且每個文件都會帶有完整路徑):

    $ tree -if xargstest/ 
    Linux系統中使用xargs命令的教程

    這六個文件的內容分別如下:
    Linux系統中使用xargs命令的教程

    這個xargstest目錄,以及它包含的子目錄和文件將用在下面的例子中。
場景1:計算所有文件的行數

就像之前提到的,使用xargs命令的第一個要點是一個用來運行命令或腳本的文件列表。我們可以用find命令來確定和列出目標文件。選項-name 'file??'指定了xargstest目錄下那些名字以"file"開頭并跟隨兩個任意字符的文件才是匹配的。這個搜索默認是遞歸的,意思是find命令會在xargstest和它的子目錄下搜索匹配的文件。

   

代碼如下:

$ find xargstest/ -name 'file??'

   

代碼如下:

xargstest/dir3/file3B
   xargstest/dir3/file3A
   xargstest/dir1/file1A
   xargstest/dir1/file1B
   xargstest/dir2/file2B
   xargstest/dir2/file2A

我們可以通過管道把結果發給sort命令讓文件名按順序排列:

   

代碼如下:

$ find xargstest/ -name 'file??' | sort

   

代碼如下:

xargstest/dir1/file1A
   xargstest/dir1/file1B
   xargstest/dir2/file2A
   xargstest/dir2/file2B
   xargstest/dir3/file3A
   xargstest/dir3/file3B

然后我們需要第二個要素,就是需要執行的命令。我們使用帶有-l選項的wc命令來計算每個文件包含的換行符數目(會在輸出的每一行的前面打印出來):

   

代碼如下:

$ find xargstest/ -name 'file??' | sort | xargs wc -l

    

代碼如下:

1 xargstest/dir1/file1A
    2 xargstest/dir1/file1B
    3 xargstest/dir2/file2A
    4 xargstest/dir2/file2B
    5 xargstest/dir3/file3A
    6 xargstest/dir3/file3B
   21 total

可以看到,不用對每個文件手動執行一次wc -l命令,而xargs命令可以讓你在一步里完成所有操作。那些之前看起來無法完成的任務,例如單獨處理數百個文件,現在可以相當輕松地完成了。
場景2:打印指定文件的第一行

既然你已經有一些使用xargs命令的基礎,你可以自由選擇執行什么命令。有時,你也許希望只對一部分文件執行操作而忽略其他的。在這種情況下,你可以使用find命令的-name選項以及?通配符(匹配任意單個字符)來選中特定文件并通過管道輸出給xargs命令。舉個例子,如果你想打印以“B”字符結尾的文件而忽略以“A”結尾的文件的第一行,可以使用下面的find、xargs和head命令組合來完成(head -n1會打印一個文件的第一行):

   

代碼如下:

$ find xargstest/ -name 'file?B' | sort | xargs head -n1

   

代碼如下:

==> xargstest/dir1/file1B <==
   one
   
   ==> xargstest/dir2/file2B <==
   one
   
   ==> xargstest/dir3/file3B <==
   one

你將看到只有以“B”結尾的文件會被處理,而所有以“A”結尾的文件都被忽略了。
場景3:對每個文件執行一個自定義腳本

最后,你也許希望對一些文件執行一個自定義腳本(例如Bash、Python或是Perl)。要做到這一點,只要簡單地用你的自定義腳本名字替換掉之前例子中的wc和head命令就好了:

   

代碼如下:

$ find xargstest/ -name 'file??' | xargs myscript.sh

自定義腳本myscript.sh需要寫成接受一個文件名作為參數并處理這個文件。上面的命令將為find命令找到的每個文件分別調用腳本。

注意一下上面的例子中的文件名并沒有包含空格。通常來說,在Linux環境下操作沒有空格的文件名會舒服很多。如果你實在是需要處理名字中帶有空格的文件,上邊的命令就不能用了,需要稍微處理一下來讓它可以被接受。這可以通過find命令的-print0選項(它會打印完整的文件名到標準輸出,并以空字符結尾),以及xargs命令的-0選項(它會以空字符作為字符串結束標記)來實現,就像下面的例子:

   

代碼如下:

$ find xargstest/ -name 'file*' -print0 | xargs -0 myscript.sh

注意一下,-name選項所跟的參數已經改為'file*',意思是所有以"file"開頭而結尾可以是任意字符的文件都會被選中。

到此,相信大家對“Linux系統中使用xargs命令的教程”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

都安| 泰州市| 正宁县| 惠州市| 石家庄市| 大宁县| 泾源县| 徐闻县| 繁峙县| 绵竹市| 东至县| 永仁县| 鄂尔多斯市| 璧山县| 台南市| 固安县| 厦门市| 应城市| 中卫市| 任丘市| 临汾市| 保德县| 阿城市| 霸州市| 元朗区| 开江县| 鄱阳县| 兴和县| 屏边| 炉霍县| 黔江区| 通化县| 佛坪县| 钟山县| 双城市| 田林县| 军事| 兴安县| 元朗区| 仙居县| 茂名市|