`sed: -e expression #1, char 4: unknown command:` 但行尾没问题

Max*_*kyi 6 shell sed

我想删除set -x文件“$(which tsc)”中包含的行,但出现错误:

$ sed -i ".bak" 'set -x' "$(which tsc)"
sed: -e expression #1, char 1: unknown command: `.'
Run Code Online (Sandbox Code Playgroud)

在这里检查了解决方案,但我的行终止符是LF.

hee*_*ayl 5

你有语法错误。后面不能有空格-i,只有扩展名;这是(初始)错误消息的来源。

此外,除去根据需要图案的线/<pattern>/ dsed(也有其他的方法,但是这一个是最干净的)。所以这样做:

sed -i".bak" '/set -x/ d' "$(which tsc)"
Run Code Online (Sandbox Code Playgroud)

或者,由于备份扩展不包含任何空格或控制字符,在这种情况下,您可以不加引号就离开:

sed -i.bak '/set -x/ d' "$(which tsc)"
Run Code Online (Sandbox Code Playgroud)