我想在文件上执行命令sed并将结果转换为多个文件
Ex输入文件
test_1
step 1
...
result
step 2
...
result
step 3
...
result
test end
....
test_2
step 1
...
result
step 2
...
result
test end
我正在使用以下命令来获取“test X”和“test end”之间的界限
sed -n "/test/,/test end/p" input.txt > output
我想将此命令的结果输出到新文件中, 其名称为test_1.txt,test_2.txt。 和文件内容将是
test_1.txt
test_1
step 1
...
result
step 2
...
result
step 3
...
result
test end
test_2.txt
test_2
step 1
...
result
step 2
...
result
test end
答案 0 :(得分:2)
您可以使用awk执行此操作:
awk '/test/{f=1;++file}/test end/{f=0}f{print > "test_" file}' input
匹配/ test /时,将f
设置为true并递增file
。当/ test end /匹配时,将f
设置为false。当f
为真时,将该行打印到名称中包含变量file
的值的文件。