sed编辑器: 非交互
Posted ninomiya1360
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed编辑器: 非交互相关的知识,希望对你有一定的参考价值。
流处理,每次只处理一行:#N行,-n屏蔽sed的默认输出,默认打印读取的每行,-i表示确认处理
格式:sed 【选项】 ‘条件指令‘ 文件名
选项 -n:屏蔽默认输出(全部文件)#不要同更改文件的指令同使用
-i:直接修改文件内容
-r:启用扩展的正则表达式,若与其他选项同用,作为首选项,使用"/正则表达式/指 令"格式
{}:组合多个命令,以分号分隔
指令:
p:打印行 |
2,4p 打印2,3,4行,是什么功能就将p换成什么指令 |
d:删除行 |
2d:4d 删除2,4行 #可以利用替换为空来删除 |
s:替换 |
s/原/新/ 替换每行第一个 s/原/新/3 替换每行第3个 s/原/新/g 替换所有 s前面可以加行号N;/替换符可以自定义,只要格式一样 |
面试题:sed ‘s9989799997799‘ 文件 #更改98979为99779,改变了替换符,斜线转义
练习
- [[email protected] shell]# sed -r ‘s#^(.)(.)(.*)(.)(.)$#14325#‘ ip #对换一行中的第二个和倒数第二个,使用()复制,位置对应数字进行粘贴
D3VICE = ensE3
W0ADDR = 00:0c:29:e4:7f:H8
TePE = EthernYt
U6ID = ee4122d2-710b-478a-9592-dbc3ecec05U9
OeBOOT = yNs
Ne_CONTROLLED = yMs
InV6INIT = Po
UnERCTL = So
I.ADDR = 1.1.4P2
N.TMASK = 255.255.255E0
G.TEWAY = 192.168,4A1
ZiNE = publOc
- sed -n ‘$=‘ 文件名 #显示文件总行
- sed -r ‘3,5s/^/#/‘ 文件 #在文件3到5行添加注释
- sed -r ‘3,5s/^#//‘ 文件 #去除3,5的注释
- sed -r ‘s/^ //g‘ 文件 #删除文件所有开始的空格,^后有空格
- sed -r ‘/ipadd/s/192.168/1.1/g‘ 文件 #将开头为ipadd行中的192.168替换成1.1
- sed ‘3r /etc/hosts‘ a.txt #将/etc/hosts读入到a.txt的第3行
- sed ‘3,5w b.txt‘ a.txt #将a.txt中的3到5行另存为b.txt
- sed ‘3h;5g‘ a.txt #将a.txt中的第3行复制到第5行,h表示复制,g表示粘贴,小写表示覆盖,大写表示追加
- sed -n ‘/关键字/p‘ 文件 #打印包含关键字的行,可以用d删除
注:脚本中要在sed中传入参数,将关键字的单引号改为双引号
以上是关于sed编辑器: 非交互的主要内容,如果未能解决你的问题,请参考以下文章