Linux学习2----sed

sed命令

  • 功能:对文件数据流编辑

语法

sed [选项] [sed内置命令字符] [输入文件]

选项

参数选项 解释
-n 取消默认sed的输出,常与内置命令p一起使用
-i 直接将修改结果写入文件,不用-i,sed修改的是内存数据
-e 多次编辑,不需要管道符了
-r 支持正则扩展

sed内置命令符

用于对文件进行不同的操作功能,如对文件增删改查

sed内置命令符 解释
a append,对文本追加,在指定行后面添加一行/多行文本
d delete,删除匹配行
i insert,表示插入文本,在指定行前添加一行/多行文本
p print,打印匹配行的内容,通常与-n一起使用
s/正则/替换内容/g 匹配正则内容,然后替换内容(支持正则),结尾g代表全局匹配

sed匹配范围

范围 解释
空地址 全文处理
单地址 指定文件某一行
/pattern/ 被模式匹配到的每一行
范围区间 10,20 十到二十行,10,+5 第10行向下5行, /pattern1/,/pattern2/
步长 12,表示1、3、5、7、9行,22 表示2、4、6、8、10

sed案例

sed "2,3p"  pwd.txt -n  #打印第2、3行
sed -n "/linux/p" pwd.txt #打印含linux的行
sed "/game/d" pwd.txt -n #删除含有game的行
sed "/game/d" pwd.txt -n -i #删除含有game的行(删除文件里的内容)
sed "5,$d" pwd.txt #删除第5行以后的
sed "s/匹配的内容/替换的内容/g" pwd.txt -i #替换
sed -e "s/匹配的内容1/替换的内容1/g" -e "s/匹配的内容2/替换的内容2/g" pwd.txt #多次替换  -e多次执行
sed "3a i like girl. \n i like pretty girl" pwd.txt #添加多行
sed "a ------" pwd.txt  #在每一行后面追加
ifconfig ens33 | sed "2p" -n | sed "s/^.*inet//" |sed "s/net.*$//"  #找到纯数字ip
ifconfig ens33 | sed -e "2s/^.*inet//" -e "2s/net.*$//p" -n   #找到纯数字ip
posted @ 2024-01-01 12:18  shog808  阅读(38)  评论(0)    收藏  举报