猿问

awk 中 PIPE 后的文件名

每个结果行之后的 FILENAME


awk '/Select User File/,/\*\*/' "{}"/* | grep "Rule" | sed 's/ //g' | sort -u

给我的输出为


Rule 123

Rule asd

Rule asdklnj

我想FILENAME在每行的末尾附加


我不知道如何在管道后获取文件名


杨__羊羊
浏览 133回答 2
2回答

犯罪嫌疑人X

你不需要在管道之后得到它。只需将其放在awk命令中即可。awk '/Select User File/,/\*\*/ {print $0 FILENAME}' "{}"/* | grep "Rule" | sed 's/ //g' | sort -u也不需要使用grepand sed,那些可以自己完成awk。awk '/Select User File/,/\*\*/ && /Rule/ {gsub(" ", ""); print $0, FILENAME}' "{}"/* | sort -u

呼唤远方

恕我直言,我们可以单独完成此操作,awk或者我们可以减少您尝试中的命令,因为没有给出样本然后尝试修复 OP 的尝试本身,请尝试以下操作。awk '/Select User File/,/\*\*/{gsub(/ /,"");print $0,FILENAME}' "{}"/* | grep "Rule" | sort -u
随时随地看视频慕课网APP

相关分类

Python
我要回答