linux中sed命令详解(谈一谈Linux三剑客sed命令篇二)
浅谈Linux三剑客中的sed命令之篇二
相关理论概述请参考如下篇一:
浅谈Linux三剑客中的sed命令之篇一
补充一下格式及常用参数:
1、
语法格式:
(1) 、
Sed [选项] 编辑命令 文件
(2) 、
Shell 命令 | sed [选项] 编辑命令
2、
常用选项:
-n:只显示匹配处理的行
-e:执行多个编辑命令(一般使用;代替)
-i:直接在文件中进行修改,不输出到屏幕
-r:支持扩展正则表达式
-f:从脚本文件中读取内容并执行文件中的编辑命令。
补充:这里比较常用的-n -r -e(用;代替)
3、
常用编辑命令:
p:打印匹配行
d:删除匹配行
案例2:
r:从另一个文件中读文本,类似输入重定向(<)
//创建一个test.txt文件
echo "hello read" > test.txt
//将test.txt文件内容追加到demo.txt的第三行,使用行号
sed '3r test.txt' demo.txt
使用正则表达式
//匹配到good行后追加
sed '/good/r test.txt' demo.txt
案例3:
w:写文本到一个文件,类似输出重定向(>)
//将脚本demo_1.sh中非#开头的行写入write.txt文件
//注意:如无wirte.txt文件会自动创建,如有会覆盖原有内容
sed -n '/^#/!w write.txt' demo_1.sh
案例4:
s:使用替换模式替换相应模式
使用频率还是比较高的
格式:
sed -n [行号or模式 ]s /匹配的字符/替换字符/[替换标记]
注意:这里的匹配的字符可以用正则表达式
常用替换标记:
数字:表示替换每行的第几个
g:全局替换,ng表示第n个开始
p:显示被执行替换操作的行,和-n配合使用
w:将执行替换操作的行输出到指定文件
测试1:
//将每行中的bash替换成nologin
sed -n 's/bash/nologin/p' /etc/passwd
//将以odysee开头(正则)的行中的bash替换为nologin,增加过滤条件
sed -n '/^odysee/s/bash/nologin/p' /etc/passwd
连同篇一都是一些Sed的基本用法,下篇会整理一些sed的特殊用法
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com