假设您要对包含模式的所有文件进行编辑。例如,将所有“2017”更改为“2018”。有许多关于 perl、sed 和其他各种建议的建议。ed 编辑器要简单得多,如果它可以工作的话。
给定一个文件:
$ echo 2017 > fubar
为什么这不起作用
$ ed fubar <<< ',s/2017/2018/g\nw\n'
6
?
$ cat fubar
2017
$
当这样做时。
$ printf ',s/2017/2018/g\nw\n'|ed fubar
6
7
$ cat fubar
2018
$
最后,它将在这样的循环中使用
$ for i in `grep -r -l 2018`; do ed $i <<< ',s/2017/2018/g\nw\n'; done