我的文件名'old'包含'123 abc'。当我在linux终端中使用下面的sed命令时:
sed 's:[0-9]+:& &:' <old \> new
新文件包含与'123 abc'相同的旧数据。 但输出应为'123 123 abc'。 我不知道我哪里错了。任何人都可以帮助我......
答案 0 :(得分:1)
两个小言论:
+
签名无需在>
符号前使用反斜杠来管道输出:
sed 's:[0-9]\+:& &:' old > new
(和一个小的改动;但没有必要:在输入文件之前不需要<
; sed知道你会给它一个文件。)
答案 1 :(得分:1)
将您的命令更改为:
sed 's:[0-9]\+:& &:' old > new
OR
sed -r 's:[0-9]+:& &:' old > new
-r
:使用扩展正则表达式(在我们的示例中,+
可以按预期工作)