sed:-e表达式#1,字符XX:未终止的's'命令

问题描述:

我试图使用正则表达式与命令sed来替换任何8位连续数字与整个文件中的特定8位数字。我不确定这是否是正确的方法,但我一直收到错误,指出该命令未终止。任何想法为什么?sed:-e表达式#1,字符XX:未终止的's'命令

sed -i 's/d\{8\}/20170526' ./somefolder/somefile.xml

错误表示对应于/20170526

+1

尝试'SED -i的/ d \ {8 \}/20170526 /'/ somefolder/somefile.xml' – yeputons

+2

心后'/' - 校正''的命令s'的语法sed'是's/replace_this/with_that /',而不是's/replace_this/with_that' – yeputons

+1

'd'与数字不匹配。也许'\ d'确实,但更好的使用'[0-9]',甚至更好''[[:digit:]]'。 –

您需要3个分隔符(在你的情况斜杠)的sed的开关语句之前char17。

sed -eE 's/[0-9]{8}/20170526/' ./somefolder/somefile.xml 
+1

's'代表“替代”,而不是“开关”。 – Barmar

+0

“p”代表迂腐。 – SaintHax