AWK中每个文件的输入文件夹/输出文件夹



我试图通过文件列表运行(几个)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(即,删除逗号)

最新更新