我试图通过文件列表运行(几个)Awk脚本,并希望将每个文件作为不同文件夹中的输出。我已经试了好几种方法,但都找不到解决办法。输出文件夹中的输出始终是一个名为{}
的文件,其中包含输入文件夹中所有文件的所有内容。
input_folder="/path/to/input"
output_folder="/path/to/output"
find $input_folder -type f -exec awk '! /rrsig/ && ! /dskey/ {print $1,";",$5}' {} >> $output_folder/{} ;
你能给我提示一下我做错了什么吗?代码在.sh脚本中调用。
我可能会选择(稍微)不那么复杂的find | xargs
,例如:
find "${input_folder}" -type f | xargs -r
awk -v outd="${output_folder}" '
FNR==1 { close(outd "/" outf); outf=FILENAME; sub(/.*//,"",outf) }
! /rrsig/ && ! /dskey/ { print $1,";",$5 > (outd "/" outf) }'
注意:$1,";",$5
中的逗号将在$1
,;
和$2
之间插入空格;如果不需要空格,则使用$1 ";" $5
(即,删除逗号)