1.6.4. 正则表达式的全局替换
ed(1) 命令可以在 “file
” 中将所有的 “FROM_REGEX
” 替换成 “TO_TEXT
” 。
$ ed file <<EOF
,s/FROM_REGEX/TO_TEXT/g
w
q
EOF
sed(1) 命令可以在 “file
” 中将所有的 “FROM_REGEX
” 替换成 “TO_TEXT
” 。
$ sed -i -e 's/FROM_REGEX/TO_TEXT/g' file
vim(1) 命令可以通过使用 ex(1) 命令在 “file
” 中将所有的 “FROM_REGEX
” 替换成 “TO_TEXT
” 。
$ vim '+%s/FROM_REGEX/TO_TEXT/gc' '+w' '+q' file
提示 | |
---|---|
上面的 “ |
多个文件( “file1
”,“file2
” 和 “file3
” )可以使用 vim(1) 或 perl(1) 通过正则表达式进行类似的处理。
$ vim '+argdo %s/FROM_REGEX/TO_TEXT/ge|update' '+q' file1 file2 file3
提示 | |
---|---|
上面的 “ |
$ perl -i -p -e 's/FROM_REGEX/TO_TEXT/g;' file1 file2 file3
在 perl(1)例子中 , “-i
“ 是在每一个目标文件的原处编辑,”-p
“ 是表示循环所有给定的文件。
提示 | |
---|---|
使用参数 “ |
注意 | |
---|---|
ed(1) 和 vim(1) 使用 BRE ; perl(1) 使用 ERE 。 |