我想要刪除目錄中每個文件的第一行,並通過在每個文件名末尾附加'.tmp'來保存相應的輸出。例如,如果有一個名爲input.txt
文件,內容如下:將xargs的輸出重定向到文件
line 1
line 2
我想創建在同一目錄與名稱input.txt.tmp
一個文件,該文件將具有以下內容
line 2
我嘗試下面的命令:
find . -type f | xargs -I '{}' tail -n +2 '{}' > '{}'.tmp
的問題是,不是寫輸出到單獨的文件與.tmp
後綴,它會創建只有一個罪惡gle文件名爲{}.tmp
。我知道這是因爲輸出重定向完成後xargs
完成。但是有什麼辦法可以告訴xargs
輸出重定向是它的參數的一部分嗎?
感謝這個解決我的問題:) – 2014-09-28 10:35:15
從'find'是危險的,如果文件名是由邪惡的人做跑步「SH -c」 。試試:'touch'foo;回聲頑皮淘氣 - 我可以在運行上述之前刪除文件。 – 2014-10-01 20:38:31