我试着理解以下sed命令会做什么:
sed ‘s/[[:digit:]]+\([[:digit:]]\)/0/g’ myfile
答案 0 :(得分:1)
尝试在包含12(5)等模式的输入上运行它并查看它的作用。通常,s/pattern/something/g
会使用 来搜索并替换 pattern 的每个实例。
答案 1 :(得分:1)
也许这应该是一个评论,但它有点长......
没有任何开关(通常为-r
/ -E
,具体取决于您的sed版本),这将匹配一个数字,后跟加号,后跟另一个数字。它会在加号后捕获数字,但不会在替换中使用它(这对我来说有点奇怪)。
启用扩展正则表达式(使用上面提到的其中一个开关),这将匹配一个或多个数字,后跟括号中的单个数字。
在这两种情况下,任何匹配都将替换为0。
我觉得该命令应该在扩展模式下运行,但我不知道任何版本的sed默认启用它,所以命令看起来可能已经坏了。
我也对命令‘
的引号持怀疑态度,因为它们似乎不是正常的单引号'
- 这可能会导致您出现问题......
在任何情况下,如果您提供了输入样本并说明了您要做的事情,而不是仅仅发布一个随机的sed命令作为问题,它将帮助我们帮助您:)