sed 命令代码无效

sed 命令代码无效

这是我正在使用的命令:

system_profiler | sed -n -e '/SATA/SATA Express:/,/Software:/ p'

它给了我这个错误

sed: 1: "/SATA/SATA Express:/,/S ...": invalid command code S

我不明白为什么它不起作用,特别是当这个几乎相同的命令起作用时:

system_profiler | sed -n -e '/Hardware Overview:/,/Installations:/ p' 

我不知道?没有理由逃避S。

答案1

逃避/两者之间的关系SATASATA Express:使其字面意思:

system_profiler | sed -n -e '/SATA\/SATA Express:/,/Software:/ p'

或者使用以下语法使用不同的分隔符:

system_profiler | sed -n -e '\|SATA/SATA Express:|,/Software:/ p'

答案2

/Hardware Overview:/,/Installations:/ p

Hardware Overview:这段代码表示:打印匹配的行和匹配的行之间的所有行Installations:

第二个代码没有任何意义:您不能放在SATA Express:/地址后面。sed在那里等待命令,或逗号后跟另一个地址。你想达到什么目的?

相关内容