每个结果行之后的 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
提交
取消