gpt4 book ai didi

sed - 破折号 e(-e) 在 sed 命令中是什么意思?

转载 作者:行者123 更新时间:2023-12-01 12:41:51 31 4
gpt4 key购买 nike

我是 sed 新手,总是对输入文件执行一个命令,最近我尝试使用 "-e"处理多个命令,但我不知道它是如何工作的,默认打印很烦人,所以我无法弄清楚命令的执行顺序。

   sed -e 'command 1' -e 'command 2'  input.txt

input.txt 的内容:
line1
line2
line3

问题 1 : 处理流程是什么?是吗
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 -e 命令组合起来创建一个单一的 sed 脚本。以下产生相同的结果(注意 -e 是隐含的):

sed '
s/1/ONE/
s/2/TWO/
/3/q
s/ONE/THREE/
' input.txt

或者作为一个类轮:
sed 's/1/ONE/; s/2/TWO/; /3/q; s/ONE/THREE/' input.txt

关于sed - 破折号 e(-e) 在 sed 命令中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23689870/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com