我正在试图编辑文本文件中的一行,方法是删除名称前面不必要的双引号,即“deleon family de.更改后应该是这样的:deleon family de.
这是我的代码:
grep 'THE DELEON FAMILY DE' all_boros.txt | sed 's/"THE DELEON FAMILY DE/THE DELEON FAMILY DE'
这是我得到的错误:
sed: -e expression #1, char 44: unterminated `s' command
最佳答案
替换命令中缺少最后一个/
:
s/"THE DELEON FAMILY DE/THE DELEON FAMILY DE/
# ^ Here
你根本不需要grep,也不需要重复替换:
sed 's/"\(THE DELEON FAMILY DE\)/\1/' all_boros.txt
根据需要,您可能需要使用
g
全局修饰符,这将使替换命令与每行的乘法次数匹配:sed 's/"\(THE DELEON FAMILY DE\)/\1/g' all_boros.txt
您可以使用
-i
进行就地编辑:sed -i.bak 's/"\(THE DELEON FAMILY DE\)/\1/g' all_boros.txt
# ^ this will make a backup called all_boros.txt.bak while modifying the
# original file
关于linux - 未终止的“s”命令错误-尝试删除多余的双引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37570990/