Linux
使用 xargs 傳遞值以生成動態輸出文件名
我的文件夾中有一些文件。通過執行以下命令,我可以使用過濾後的文件名(test1、test2、test3)創建一個列表,並使用 xargs 將其傳遞給 grep 過濾命令過濾器文件,該命令包含一些要過濾掉的值。
ls -Art1 | grep test | xargs -L1 grep -vf filter > ouput
但是,當執行此命令時,輸出文件包含 test1、test2 和 test3 的過濾結果。一體。
我想為每個 test1 > test1_output, test2 >test2_output,… 設置單獨的文件,所以取 xargs 值並在其中添加一個額外的字元串“_output”以生成輸出文件名
無需通過管道輸出
ls
來搜尋名稱匹配。只需使用 shell glob。這也允許您為每次過濾嘗試定義一個輸出文件for file in *test* do [ -f "./$file" ] && grep -vf filter "./$file" >"${file}_output" done
從技術上講,這可能是一組與您的文件匹配略有不同的文件,
ls -A
因為您的程式碼考慮的是點文件,而我的則沒有。如果相關,可修復。