Linux(第二十四篇)三剑客之sed

本文介绍了sed命令的常用选项和操作符,如-e、-f、-i等,以及替换(s)、删除(d)、增加(a)、插入(i)等操作,还展示了如何筛选、删除和修改文本行,并提供了多个示例,适用于Linux系统中的文本流编辑。
摘要由CSDN通过智能技术生成

sed命令的常用选项


-e :表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用

-f :表示用指定的脚本文件来处理输入的文本文件。

-h :显示帮助。

-i 直接修改目标文本文件,立即生效

-n 取消默认输出(打印时候要添加,打印两行变一行)

sed命令的操作符


s:替换,替换指定字符

d:删除,删除选定的行。

a:增加,在当前行下面增加一行指定内容。

i:插入,在选定行上面插入一行指定内容。

c:替换,将选定行替换为指定内容。

y:字符转换,转换前后的字符长度必须相同。

p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以 ASCII 码输出。其通常与“-n”选项一起使用。

=:打印行号。

l(小写L):打印数据流中的文本和不可打印的ASCII字符(比如结束符$、制表符\t)

r:高级正则表达式

查:

sed -n '2p' (只打印第2行)

sed -n '=;p' (打印行号和内容)

sed -n '1,3p' (打印1-3行)

sed -n '$p' (打印最后一行)

sed -n '1p;3p' (打印第1行和第3行)或者 sed -n -e '1p' -e '3p'

sed -n 'n;p' (打印偶数行)

sed -n 'p;n' (打印奇数行)

sed -n '/0/p' (打印含0的所有行)

sed -n '/^root/p' (打印以root开头的所有行)

sed -n '/bash$/p' (打印以bash结尾的所有行)

删:

sed 'd' (删除所有)

sed -i 'd' (删除文件内容保留文件) 或者 cat /dev/null > 文件

sed -n '3d;p' (删除第三行,其他打印出来)

sed -n '3-5d;p' (删除3-5行,其他打印出来)

sed -n '3-5!d;p' (只打印出3-5行,其他删除)

sed '/one/d' (删除带one的行)

sed '/one/,/six/d' (删除带one的行一直删到带six的行)

sed '^$' (删除空行)或者grep -v '^$' 或者cat 文件 | tr -s '\n'

改:

sed -n 's/root/test/2p' (第二行的所有root替换成test并打印出来)

sed -n 's/root/test/gp'   (所有的root替换成test并打印出)

sed -n '/^root/,s/^/#/p'  (以root为开头的注释掉)

sed -n 's/A-Z/\/$/g' (所有大写换成小写)

sed -n 's/a-z/\/u&/g'  (所有小写换成大写)

sed '/root/c test' (带有root的这行全部替换)

sed 'y/root/qqqq/' (替换root为qqqq,这里注意只可以替换同长度的)

增:

sed '/three/a 123' 在three下增加123

sed '/three/i 123' 在three上增加123

sed '$r123.txt' 456.txt 把123.txt的内容插入到456.txt里

sed里面字符串和字符的位置交换:

echo test1yht | sed -r 's/(test1)(yht)/\2\1/'

结果为:yhttest1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值