linux字符串替换命令,linux系统:批量替换文本指定字符串

1、Vi编辑器替换

vi/vim 中可以使用 :s 命令来替换字符串。

:s/error/wrong/:替换当前行第一个error为wrong;

:s/error/wrong/g:替换当前行所有error为wrong;

:n,$s/error/wrong/:替换第n行开始到最后一行中每一行的第一个error为wrong;

:n,$s/error/wrong/g:替换第n行开始到最后一行中每一行所有error为 wrong;

注:n为数字,表示第n行开始;若n为 .,表示从当前行开始。

:%s/error/wrong/:(等同于 :g/error/s//wrong/),替换每一行的第一个 error为wrong;

:%s/error/wrong/g:(等同于 :g/error/s//wrong/g),替换每一行中所有 error为wrong;

注:可以使用#作为分隔符,此时中间出现的/不会作为分隔符。

:s#error/#wrong/#:替换当前行第一个 error/为 wrong/;

:%s#/usr/bin#/bin#g:可以把文件中所有路径/usr/bin换成/bin

2、Sed命令替换

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名

-i:表示直接修改文件

-r:表示搜索子目录

-l:表示输出匹配的文件名

s表示替换,d表示删除

示例:sed -i "s/well/good/g"  test.txt

3、Sed其他用法

(1)删除行首空格

sed 's/^[ ]*//g' filename

sed 's/^ *//g' filename

sed 's/^[[:space:]]*//g' filename

(2)行后和行前添加新行

行后:sed 's/pattern/&\n/g' filename

行前:sed 's/pattern/\n&/g' filename

&代表pattern

(3)使用变量替换(使用双引号)

sed -e "s/$var1/$var2/g" filename

(4)在第一行前插入文本

sed -i '1 i\插入字符串' filename

(5)在最后一行插入

sed -i '$ a\插入字符串' filename

(6)在匹配行前插入

sed -i '/pattern/ i "插入字符串"' filename

(7)在匹配行后插入

sed -i '/pattern/ a "插入字符串"' filename

(8)删除文本中空行和空格组成的行以及#号注释的行

grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值