Shell编程之sed

        sed 是一种流编辑器,它一次处理一行内容。处理时把当前处理的行存储在临时缓冲区中,接着sed命令处理缓冲区中的内容,处理完成后把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容没有改变,除非你使用重定向输出语句。

语法:

        sed [ 参数 ]  "命令"  文件名

参数:

  • -n:一般 sed 命令会把所有数据都输出到屏幕上。如果加入此选项,则只会把经过 sed 命令处理的行输出到屏幕上;
  • -e: 允许对输入数据应用多条 sed 命令编辑;
  • -f 脚本文件名:从 sed 脚本中读入 sed 操作。
  • -r:在 sed 中支持扩展正则表达式;
  • -i:用 sed 的修改结果直接修改读取数据的文件,而不是由屏幕输出动作;

命令:

  • a :追加,在当前行后添加一行或多行。当添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结;
  • c :行替换,用c后面的字符串替换原数据行。当替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结;
  • i :插入,在当前行前插入一行或多行。当插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结;
  • d:删除,删除指定的行;
  • P:打印,输出指定的行;
  • s:字符串替换,用一个字符串替换另一个字符串。格式为“行范围s/旧字串/新字串/g”;

示例如下:

 准备一个测试文件,文件内容如下:

                测试1 1 11
                测试2 2 22
                测试3 3 33

 测试命令

  • 追加(a
  • 插入(i
sed "2a 测试" sed.txt

sed "2i 测试" sed.txt

这里可以看到 ai 的区别,一个是在指定行之后追加写入,一个是在指定行直接插入。

  •  行替换(c
  • 字符串替换(s
sed "s/测试/实操/g" sed.txt

sed "2c 测试" sed.txt

  •  多条命令(-e
sed -e "3a 测试4" -e "2c 替换" sed.txt

  •  写入文件(-i
sed -i "3a 测试4 4 44" sed.txt
cat sed.txt

  •  输出指定行 (P
  • 选择输出(-n
sed "2P" -n sed.txt

        这里可以看到如果只输入 P 命令的话会把选中行和所有行都输出,加上 -n 命令之后则只输出选中的那一行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值