在与字符串匹配后,使用Sed替换第一个正斜杠

时间:2013-08-13 01:42:44

标签: unix sed awk

所以我在文件中有以下内容:

/icon.png
/my/path/tester/icon.png
/logo.png
/my/path/tester/logo.png

我想替换所有不包含'tester'的行,并将'/ my / path / tester /'添加到开头...离开:

/my/path/tester/icon.png
/my/path/tester/icon.png
/my/path/tester/logo.png
/my/path/tester/logo.png

我还希望使用sed编辑文件。

提前致谢!

1 个答案:

答案 0 :(得分:2)

如果您的sed支持-i选项(例如,gnu-sed):

sed -i '/tester/!s@^@/my/path/tester@' file

请注意,这符合您的要求,但不健全。您可能希望将替换限制为与' / tester /'不匹配的行。而不是“测试人员”,而-i选项确实没有意义(见sed edit file in place)。使用-i会对临时文件进行模糊处理,因为某些原因人们通常不希望这样做,并认为他们可以使用-i来避免这种情况。