【发布时间】:2017-05-27 03:27:58
【问题描述】:
我正在尝试将正则表达式与命令 sed 一起使用,以将整个文件中的任何 8 个连续数字替换为特定的 8 个数字。我不确定这是否是正确的方法,但我不断收到错误消息,指出命令未终止。知道为什么吗?
sed -i 's/d\{8\}/20170526' ./somefolder/somefile.xml
错误显示 char17 对应于 / 之前的 20170526
【问题讨论】:
-
试试
sed -i 's/d\{8\}/20170526/' ./somefolder/somefile.xml -
注意尾随的
/-sed的s命令的正确语法是s/replace_this/with_that/,而不是s/replace_this/with_that -
d与数字不匹配。也许\d可以,但最好使用[0-9],甚至更好的[[:digit:]]。 -
另外,第 17 个字符是命令本身的最后一个字符,不包括
sed -i,而这正好在命令末尾缺少/。 -
来自
man sed:s/regexp/replacement/
标签: sed