shell-sed常用语法

sed 命令

在shell 编写中,时长会用到对文件的相关操作,比如增加,修改,删除,查看部分内容等,常用的文本编辑器如:gedis、vim、nano等又是交互式文本编辑器、脚本无法自己独立完成、必须人参与才可以完成。如果这样的化违背了我们编写脚本的意愿。
为了解决上述问题、liunx为大家提供了一些命令,比如perl、sed等。

sed命令

sed是liunx中提供的一个外部命令,它是一个行流编辑器,非交互式的对文件尼尔进行增删改查的操作,使用者只能命令行输入编辑命令、指定文件名,然后在屏幕上查看输出。它和文本编辑器有本质的区别

区别
文本编辑器:编辑的对学生文本
行编辑器:编辑对象是文件中的行

语法
sed [options] `{command}{flags}` [filename]

选项说明
-e将脚本指定的命令添加到处理输入时执行的命令中
-f将文件中指定的命令添加到处理输入的执行的命令中
-n抑制自动输出,不加会输出字段
-i编辑文件内容,会修改原文件
-i.bak修改时同时创建.bak备份文件
-r使用扩展的正则表达式
取反
sed -e 's/hello/HELLO;s/hello/HELLO' text #-e 执行多行指令
sed -n 's/hello/HELLO;s/hello/HELLO'  text #-n 抑制自动打印,节省内存占用
       

sed 常用内部指令

选项说明
a在匹配后面添加
i在匹配前面添加
p打印
d删除
s替换
c更改
=行号
$=获取行数
y转换
---------匹配模式-------------
sed 'a\hello world' text
#text文件中,在每一行下 加hello world
sed '2,4a\hello world' text
#text文件中,在第2行到第4行 后 加hello world
sed '/text中的内容/ a\hello world ' text 
#匹配 / / 中的内容 在内容后添加hello world

#i 在每行前面插入
#以上只是在内存中更改文件,并不会更改原文件

--------删除------------------
sed 'd' text  #会直接删除文件
sed '2d' text #删除第二行
sed -r '/^#/d' text #引入正则表达式 删除# 开通的行

-------替换-------------------
sed 's/value1/value2/' text #将文本中的value1 替换成vaule2

sed '1s/value1/value2/' text #将文本中的第一行的value1替换成vaule2

--------更改----------------------------
sed 'c\hello world \' text #将所有行更都改为hello world
sed '2,4c\hello world \' text #将2 3 4 所有内容替换为一个hello world
sed '/value/ c \hello world' text #将含有value的行更改为hello world
------------转换--------------------------
sed 'y/abcdef/ABCDEF' text #将text中的对应的abcdef 转换为ADBCEF注意是字符一个一个字符进行转换
------------打印-------------------------
sed /p/ text #打印 会打印两边

flags

选项说明
数字表示新文本替换的模式
g:表示用新文本替换现有的文本的内容实例
p:表示打印原始的内容
w filename将替换的结果写入文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是杨杨呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值