linux sed 实例,Linux—sed命令实例

1、sed命令

sed command parameter

-n:使用案件模式,只在屏幕列出通过sed特殊处理的行

-e:用多条sed命令操做输入行

-f:指定sed脚本的文件名,直接将sed的动做写在文档内

-r:支持正则表达式语法

-i:直接修改读取的文件内容,不输出到终端

sed command

a:新增

c:取代

d:删除

i:插入

p:列印

s:取代,可搭配正则表达式

通用命令eg:

1.(p命令)以行为单位,显示文件的某些行内容,通常会和 -n 一块儿使用

#打印test.txt文件的第一行

sed -n '1p' test.txt

#打印test.txt文件的2~5行

sed -n '2,5p' test.txt

#打印打印test.txt文件的最后一行($)

sed -n '$p' test.txt

#查找包含command所在的行并打印

sed -n '/command/p' test.txt

#打印test.txt文件的第1到匹配command的行

sed -n '1,/command/p' test.txt

#打印test.txt文件的第1到匹配command的行,并打印行号(

{=;p})

sed -n '1,/command/{=;p}' test.txt

#打印test.txt文件的除第1到匹配command外的其余行行,并打印行号(

!取反)

sed -n '1,/command/!{=;p}' test.txt

2.(d命令)以行为单位,删除文件的某些行内容

#删除test.txt文件的第一行,并显示

sed '1d' test.txt //(对文件没有真正删除,如需删除,需增长-i 参数)

#删除test.txt文件的2~5行

sed '2,5d' test.txt

#删除test.txt文件的最后一行(

$)

sed '$d' test.txt

#删除空白行

sed '/^$/d' test.txt

#查找包含command所在的行并删除

sed '/command/d' test.txt

#统计文件行数

sed -n '$=' test.txt

3.(a/i命令)在文件中增长行

#在第n行前增长一行(

i)

sed '1i test' test.txt

#在第n行后增长一行(

a)

sed '1a test' test.txt

#增长多行内容(\n)

sed '1i test\ntest\ntest' test.txt

4.(c命令)以行为单位替换

#第n行替换为新的内容

sed '1c test' test.txt

#第n1到n2行替换为新的内容

sed '1,3c test' test.txt

5.(s命令)替换一行中的某部分

#sed 's/要替换的字符串/新的字符串/g'

sed 's/t/d/g' test.txt //将test1.txt文件里的 t 替换成 d

注意:g参数起全局的做用,带上g参数,搜索全部的待替换字符串并替换;不带g参数,匹配到每行的第一个待替换字符串完成替换并进入下一行;

sed 's/t/d/4g' test.txt

“要替换的字符串”能够用正则匹配

如在test.txt里加入一行

inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

#取本机IP

cat test.txt |grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast:.*$//g'

#在匹配command行的行首添加#字符串

sed '/command/s/^/#/' test.txt

#在匹配command字符前增长test

sed 's/command/test &/' test.txt

#在匹配command行的行尾增长test字符串

sed '/command/s/$/ test/' test.txt

#在每行的开头添加test字符串

sed 's/^/test /' test.txt

#在每行的行尾增长 end

sed 's/$/ end/' test.txt

6.(参数-e)多点编辑

#删除1~3行,并将test替换为空

sed -e '1,3d' -e 's/test//g' test.txt

7.(r 命令)读文件内容

#将一个文件中的内容加到当前文件的匹配r:读文件的下一行

sed '/r:读文件/r rtest.txt' test.txt

8.(w命令)写文件内容

#将当前文件(test.txt)中包含“w:写文件”的行写到wtest.txt文件中(会新建文件,覆盖原文件内容)

sed '/w:写文件/w wtest.txt' test.txt

9.(y命令)字符转换

#将字符a、c、d、i、p、s、r、w分别转换为A、C、D、I、P、S、R、W

sed 'y/acdipsrw/ACDIPSRW/' test.txt

10(q命令)退出

#打印完第10行后退出sed

sed '10q' test.txt

11.(&标记)已匹配字符串标记

&对应于以前匹配到的字符串

#匹配每一个单词,添加[ ]

sed 's/\w\+/[&]/g' test.txt

12.(\1标记)子串匹配标记\1

#匹配test后,取其后的第一个数字

sed 's/test\([0-9]\)/\1/' test.txt

13.打印奇数行或偶数行

#奇数行

sed -n 'p;n' test.txt

sed -n '1~2p' test.txt

#偶数行

sed -n 'n;p' test.txt

sed -n '2~2p' test.txt

14.sed 引用变量

当sed命令里面没有默认的变量时需把单引号改为双引号

sed "s/test/$name/" test.txt

当sed命令里面有默认的变量时,那本身定义的变量须要加单引号,且sed里面的语句必须用单引

($a表示在最后一行后)

sed '$a '$name'' test.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值