vi或sed的批量替换

2013-03-27

vi或sed的批量替换有相通之处,掌握它,工作更便捷.更深一步应该掌握正则表达式.

1、vi批量替换

:%s/str1/str2/
用字符串 str2 替换文件每行首次出现的字符串 str1
:%s/str1/str2/g
用字符串 str2 替换所有出现的字符串 str1
:%s#/usr/bin#/bin#g
把文件中所有路径/usr/bin换成/bin。其中“#”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。
:10,20s/^/ / 将第10行至第20行资料的最前面插入1个空格
:%s/ /^M/g 将空格替换成回车,用CTRL+V CTRL+M输入^M表示回车。
:%s/\s\+$// 删除行尾多余的空格
命令前面指明范围是“%”,所以这会作用于整个文件。“substitute”命令的样式是“\s\+$”。这表示行末($)一个或者多个(\+)空格(\s)

2、sed批量替换

sed -i 's/str1/str2/' file.txt
用字符串 str2 替换每行首次出现的字符串 str1
sed -i 's/str1/str2/g' file.txt
用字符串 str2 替换所有出现的字符串 str1

3、sed删除指定行

a、sed -i '/[mnt]/,5d' a.txt
b、sed -i '/\[mnt\]/,/\#\[end\]/d' 1.txt

分类:Linux | 标签: |

相关日志

评论被关闭!