Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18171
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2020-12-24 15:54
文章分类

全部博文(3)

文章存档

2020年(3)

我的朋友
最近访客

分类: 系统运维

2020-12-27 19:16:56

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

阅读(4903) | 评论(0) | 转发(0) |
0

上一篇:linux系统:Swap内存使用率过高解决办法

下一篇:没有了

给主人留下些什么吧!~~