awk 将每个匹配写入文件并递增文件名

awk 将每个匹配写入文件并递增文件名

我想读取一个没有空格、填充了根证书的文件,并将它们分成每个匹配的新文件。我可以一次选择所有匹配的证书并插入到单个文件中,但我不知道如何分隔每个匹配并让 print 为每个证书创建一个新文件。

awk '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/ { print > outputlist }' inputlist

我已经尝试过使用 while read 循环,但这不起作用。

答案1

尝试一下这个:

awk '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/ {
       if (/-----BEGIN CERTIFICATE-----/) nb++
       print > "certificate" nb ".txt"
     }' inputlist

awk在编写脚本时,我总是打开此页面:awk

生成的文件:

$ ls certificate*
certificate1.txt  certificate2.txt

相关内容