为了账号安全,请及时绑定邮箱和手机立即绑定

awk 中 PIPE 后的文件名

awk 中 PIPE 后的文件名

杨__羊羊 2023-01-04 16:41:08

每个结果行之后的 FILENAME


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

给我的输出为


Rule 123

Rule asd

Rule asdklnj

我想FILENAME在每行的末尾附加


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


查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献1813条经验 获得超4个赞

你不需要在管道之后得到它。只需将其放在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



查看完整回答
反对 回复 2023-01-04
?
呼唤远方

TA贡献1594条经验 获得超11个赞

恕我直言,我们可以单独完成此操作,awk或者我们可以减少您尝试中的命令,因为没有给出样本然后尝试修复 OP 的尝试本身,请尝试以下操作。

awk '/Select User File/,/\*\*/{gsub(/ /,"");print $0,FILENAME}' "{}"/* | grep "Rule" | sort -u



查看完整回答
反对 回复 2023-01-04

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信