awk 'BEGIN{i=1} /-----BEGIN/,/-----END/{print $0; print "########################################"i; print $0>i; if($0~/-----END CERTIFICATE-----/){print "matched " i; i++}}' ca-bundle.crt print $0 >i 但是不能使用print $0>>i。但是效果是一样的。会追加到重定向的文件里面, 而不是覆盖。