这是我正在使用的命令:
system_profiler | sed -n -e '/SATA/SATA Express:/,/Software:/ p'
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误
sed: 1: "/SATA/SATA Express:/,/S ...": invalid command code S
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它不起作用,尤其是当这个几乎相同的命令起作用时:
system_profiler | sed -n -e '/Hardware Overview:/,/Installations:/ p'
Run Code Online (Sandbox Code Playgroud)
我不知道?没有理由逃避S。
转义两者/
之间SATA
并SATA Express:
使其成为字面意思:
system_profiler | sed -n -e '/SATA\/SATA Express:/,/Software:/ p'
Run Code Online (Sandbox Code Playgroud)
或使用以下语法使用不同的分隔符:
system_profiler | sed -n -e '\|SATA/SATA Express:|,/Software:/ p'
Run Code Online (Sandbox Code Playgroud)