• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 業界動態 > 在Linux操作系統里使用xargs命令

    在Linux操作系統里使用xargs命令

    作者: 時間:2015-01-19 來源:網絡 收藏

    你是否遇到過這樣的情況,需要一遍又一遍地對多個文件執行同樣的操作?如果有過,那你肯定會深有感觸這是多么的無聊和效率低下。還好有種簡單的方式,可以在基于Unix的操作系統中使用解決這個煩惱。通過這個命令你可以有效地處理多個文件,節省你的時間和精力。在這篇教程中,你可以學到如何一次性對多個文件執行命令或腳本操作,再也不用擔心像單獨處理無數個日志或數據文件那樣嚇人的任務了。

    本文引用地址:http://www.czjhyjcfj.com/article/268330.htm

    linux操作系統

    linux操作系統專題文章linux操作系統詳解(linux不再難懂)

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

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

    1:計算所有文件的行數

    2:打印指定文件的第一行

    3:對每個文件執行一個自定義腳本

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

    xargs命令

    xargs命令

    這六個文件的內容分別如下:

    xargs命令

    這個xargstest目錄,以及它包含的子目錄和文件將用在下面的例子中。

    場景1:計算所有文件的行數

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

    xargs命令

    xargs命令

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

    xargs命令

    xargs命令

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

    xargs命令

    xargs命令

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

    場景2:打印指定文件的第一行

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

    xargs命令

    xargs命令

    你將看到只有以“B”結尾的文件會被處理,而所有以“A”結尾的文件都被忽略了。

    場景3:對每個文件執行一個自定義腳本

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

    xargs命令

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

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

    xargs命令

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

    總結

    在看完這篇教程后你應該會理解xargs命令的作用,以及如何應用到自己的工作中。很快你就可以有時間享受這個命令所帶來的高效率,而不用把你的時間耗費在一些重復的任務上了。想了解更詳細的信息以及更多的選項,你可以在終端中輸入'man xargs'命令來查看xargs的文檔。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    linux相關文章:linux教程


    電磁爐相關文章:電磁爐原理




    關鍵詞: Linux xargs命令

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 清远市| 海淀区| 偃师市| 库车县| 邳州市| 玉门市| 祁连县| 旺苍县| 天祝| 松溪县| 岳阳县| 黎城县| 库尔勒市| 白朗县| 古田县| 和平县| 宜州市| 蒙阴县| 高青县| 黄龙县| 阳东县| 穆棱市| 辽宁省| 夏邑县| 赞皇县| 老河口市| 赞皇县| 容城县| 万年县| 天祝| 阳城县| 博野县| 岫岩| 娄烦县| 陇西县| 新兴县| 大丰市| 祁连县| 措美县| 花垣县| 梅河口市|