1

我想找到一个在字符串中添加一些字符的解决方案

例子

folder/dir/directory/file.txt
shares/page.html
etc/downloads/torrent.torrent

应该成为

.folder.old/dir/directory/file.txt
.shares.old/page.html
.etc.old/downloads/torrent.torrent

我怎样才能做到这一点?'grep' 会是正确的选择吗?

谢谢

4

2 回答 2

4

使用sed代替grep

sed -i.bak 's#^\([^/]*\)#.\1.old#'

请注意,这-i会将结果保存在原始文件本身中。-i.bak将保存带有.bak扩展名的原始文件,以防出现问题。

于 2013-04-22T14:36:10.387 回答
4

grep仅搜索,不进行替换。你想要sed

sed -i.bak 's#^\([^/]*\)#.\1.old#'

^表示该行的开头
\(...\)正在捕获括号,它匹配的模式成为\1替换。
[^/]匹配除/
*前面的零个或多个 之外的任何内容

于 2013-04-22T14:39:06.987 回答