sed错误-e表达式#1,字符2:未终止的地址正则表达式

sed错误-e表达式#1,字符2:未终止的地址正则表达式

尝试为学校实验室编写包含多个命令的 sed 字符串,但我不断收到相同的错误消息。试图向其他地方寻求帮助,他们认为我错过了某个地方的逃生机会。我已尽一切努力让它发挥作用。以下是我尝试过的一些不同命令。原始字符串是:

sed “s/,//g” usdeclar.txt | sed “s/://g” | sed “s/;//g” | sed “s/-//g” | sed “s/&//g” | sed “s/\.//g” | sed “/^$d” > sed_edits.txt

在此输入图像描述请有人帮忙!

答案1

用单引号引用你的 sed 表达式是一个好习惯,除非你知道你想要 shell 扩展,例如$d.sed将你的最终表达式视为

sed "/^"

如果 shell 变量$d未设置。

(为了将来的调试目的,您可以sed "(your expression)" usdeclar.txt依次运行每个表达式,以找出哪个表达式给您带来麻烦。)

(作为旁注:tr -d '[-&;.]'应该做与前四个相同的事情sed。)

答案2

在您sed引用为“原始字符串”的命令中,您似乎使用

U+201C  “   e2 80 9c    LEFT DOUBLE QUOTATION MARK
U+201D  ”   e2 80 9d    RIGHT DOUBLE QUOTATION MARK

代替"(0x22) ASCII 字符。 shell 都无法sed识别。

尝试使用 *nix 文本编辑器。

答案3

在互联网上搜索 sed [[:punc:]] 可能是值得的。它可能会缩短你的命令行。

相关内容