Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 管道后awk中的文件名_Python_File_Unix_Awk - Fatal编程技术网

Python 管道后awk中的文件名

Python 管道后awk中的文件名,python,file,unix,awk,Python,File,Unix,Awk,每个结果行后的文件名 awk '/Select User File/,/\*\*/' "{}"/* | grep "Rule" | sed 's/ //g' | sort -u 将输出作为 Rule 123 Rule asd Rule asdklnj 我想将文件名附加到每一行的末尾 我不知道如何在管道后获取文件名,您不需要在管道后获取文件名。只需将其放入awk命令中即可 awk '/Select User File/,/\*\*/ {print $0 FILENAME}' "{}"/* |

每个结果行后的文件名

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

Rule 123
Rule asd
Rule asdklnj
我想将
文件名
附加到每一行的末尾


我不知道如何在管道后获取文件名,您不需要在管道后获取文件名。只需将其放入
awk
命令中即可

awk '/Select User File/,/\*\*/ {print $0 FILENAME}' "{}"/* | grep "Rule" | sed 's/ //g' | sort -u
也不需要使用
grep
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

使用
FILENAME
变量如果使用
gawk
第一种方法将从文件名中删除可能的空格