我有一個檔案夾,里面有 64 個專案,編號如下:1-1, 1-2, 1-3, 1-4, 2-1 ...我想要做的是為特定模式 grep 檔案 1-1 ,將輸出保存到名為 1-1a 的新檔案中,然后移至檔案 1-2,依此類推。所有 64 個檔案的模式都保持不變。
我嘗試使用findand 進行變體,-exec grep 'pattern' "{} > {}a"但似乎我不能在一行中使用 {} 兩次并且仍然將其解釋為變數。我也愿意接受使用 awk 或類似方法的建議。
uj5u.com熱心網友回復:
使用 awk 應該很容易
awk '/pattern/{print > FILENAME "a"}' *
為了使用 find,替換*為find命令的結果:
awk '/pattern/{print > FILENAME "a"}' $(find ... -print0)`
...但請注意檔案串列不會增長太長(在這種情況下使用回圈)。
uj5u.com熱心網友回復:
你可以使用這個find命令
find . -name '*[0-9]-[0-9]*' -exec bash -c 'grep "pattern" "$1" > "${1}a"' - {}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/354219.html
上一篇:nodejs:如何在expressjs上僅將重定向設定為基本url?
下一篇:模數在不應該改變的時候改變變數值
