每个结果行之后的 FILENAME
awk '/Select User File/,/\*\*/' "{}"/* | grep "Rule" | sed 's/ //g' | sort -u
给我的输出为
Rule 123
Rule asd
Rule asdklnj
我想FILENAME在每行的末尾附加
我不知道如何在管道后获取文件名
每个结果行之后的 FILENAME
awk '/Select User File/,/\*\*/' "{}"/* | grep "Rule" | sed 's/ //g' | sort -u
给我的输出为
Rule 123
Rule asd
Rule asdklnj
我想FILENAME在每行的末尾附加
我不知道如何在管道后获取文件名
TA贡献1813条经验 获得超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贡献1594条经验 获得超11个赞
恕我直言,我们可以单独完成此操作,awk
或者我们可以减少您尝试中的命令,因为没有给出样本然后尝试修复 OP 的尝试本身,请尝试以下操作。
awk '/Select User File/,/\*\*/{gsub(/ /,"");print $0,FILENAME}' "{}"/* | grep "Rule" | sort -u
举报