每個結果行之后的 FILENAMEawk '/Select User File/,/\*\*/' "{}"/* | grep "Rule" | sed 's/ //g' | sort -u給我的輸出為Rule 123Rule asdRule asdklnj我想FILENAME在每行的末尾附加我不知道如何在管道后獲取文件名
2 回答

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
你不需要在管道之后得到它。只需將其放在awk
命令中即可。
awk '/Select User File/,/\*\*/ {print $0 FILENAME}' "{}"/* | grep "Rule" | sed 's/ //g' | sort -u
也不需要使用grep
and sed
,那些可以自己完成awk
。
awk '/Select User File/,/\*\*/ && /Rule/ {gsub(" ", ""); print $0, FILENAME}' "{}"/* | sort -u

呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
恕我直言,我們可以單獨完成此操作,awk
或者我們可以減少您嘗試中的命令,因為沒有給出樣本然后嘗試修復 OP 的嘗試本身,請嘗試以下操作。
awk '/Select User File/,/\*\*/{gsub(/ /,"");print $0,FILENAME}' "{}"/* | grep "Rule" | sort -u
添加回答
舉報
0/150
提交
取消