我想删除set -x
文件“$(which tsc)”中包含的行,但出现错误:
$ sed -i ".bak" 'set -x' "$(which tsc)"
sed: -e expression #1, char 1: unknown command: `.'
我检查了解决方案在这里,但我的行终止符是LF
。
答案1
你有语法错误。后面不能有任何空格-i
,只有扩展名;这是(初始)错误消息的来源。
另外,要根据您需要的模式删除一条线/<pattern>/ d
(sed
还有其他方法,但这是最干净的)。所以这样做:
sed -i".bak" '/set -x/ d' "$(which tsc)"
(可选)由于备份扩展名不包含任何空格或控制字符,因此在这种情况下您可以不加引号即可逃脱:
sed -i.bak '/set -x/ d' "$(which tsc)"
答案2
尝试这个命令:
sed -i.bak '/pattern to match/d' ./infile
您也可以参考删除文本文件中包含特定字符串的行(在 Stack Overflow 上)了解更多删除包含set -x
.