【发布时间】:2014-05-15 22:39:31
【问题描述】:
我是 sed 新手,总是在输入文件上执行一个命令,最近我尝试使用 "-e" 处理多个命令,但我不知道它是如何工作的,默认打印很烦人,所以我无法弄清楚命令的执行顺序。
sed -e 'command 1' -e 'command 2' input.txt
input.txt 的内容:
line1
line2
line3
问题一:处理流程是什么?是吗
command1 processes line1 and then command2 processes new-line1(processed by cmd1)
command1 processes line2 and then command2 processes new-line2(processed by cmd1)
command1 processes line3 and then command2 processes new-line3(processed by cmd1)
或
command1 processes line1
command1 processes line2
command1 processes line3
command2 processes new-line1(already processed by cmd1)
command2 processes new-line2(already processed by cmd1)
command2 processes new-line3(already processed by cmd1)
问题 2: 正如我所提到的,默认打印很烦人,我应该在第一个 -e 前面使用 -n 还是在两个 -e 前面使用?
提前致谢。
编辑(似乎工作流程是第一个假设):
input.txt
1
2
3
sed -e '{s/1/ONE/;s/2/TWO/;/3/q}' -e '{s/ONE/THREE/}' numbers.txt
THREE
TWO
3
上面的命令我试过了,好像是command1处理line1,command2处理new-line1(cmd1处理),cmd1处理下一行
【问题讨论】:
标签: sed