将名称添加到 sed 命令的输出中
Add the name to the output of the sed command
我想对一个文件执行命令 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
你可以使用 awk 做到这一点:
awk '/test/{f=1;++file}/test end/{f=0}f{print > "test_" file}' input
当/test/匹配时,设置f
为真并递增file
。当匹配到/test end/时,设置f
为false。当 f
为真时,将该行打印到名称包含变量 file
.
值的文件
我想对一个文件执行命令 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
你可以使用 awk 做到这一点:
awk '/test/{f=1;++file}/test end/{f=0}f{print > "test_" file}' input
当/test/匹配时,设置f
为真并递增file
。当匹配到/test end/时,设置f
为false。当 f
为真时,将该行打印到名称包含变量 file
.