Linux文本处理三剑客——sed实例

查看/etc/passwd文件的3到5行

sed -n '3,5p' /etc/passwd

查看/etc/passwd文件最后一行

 sed -n '$p' /etc/passwd

查看/etc/passwd文件2、3、4行

sed -n '2,+2p' /etc/passwd

查看/etc/passwd文件第5行到最后一行

sed -n '2,$p' /etc/passwd

删除/etc/fstab文件的3到5行

sed  '3,5d' /etc/fstab

在文件第一行后追加字符串

sed '1a 1111111111111111' /etc/fstab

在文件最后一行前面插入后面的字符串

sed '$i 1111111111111111' /etc/fstab

将文本第3行修改为指定的字符串

sed '3c 1111111111111111' /etc/fstab

将/etc/passwd文件的第一行写入abc.txt

sed '1w abc.txt' /etc/passwd

在文件的第2行到10行行首加上#

sed -n '2,10s/^/#/p' abc.txt

在文件的第2行到10行行尾加上?

sed -n '2,10s/$/?/p' abc.txt

不显示以#开头的行

sed -rn '/^#/!p' /etc/bashrc

显示包含"bash"的行

sed -rn '/bash/p' /etc/passwd

显示以/结尾的行

df -h | sed -n '//$/p'

删除空行和注释

sed -r '/^$|^#/d' /etc/inittab

在包含boot的行下面追加后面的字符

sed '/boot/a 1111111111111' /etc/fstab

在包含boot的行下面追加后面的字符串

sed '/defaults/i 1111111111111' /etc/fstab

将id:所在的行整行替换成后面的字符串

sed '/id:/c id:5:initdefault:' /etc/inittab

在fstab文件的末尾后面读入hosts文件的内容

sed '$r /etc/hosts' /etc/fstab

在/dev/sda1后面读入mtab文件的内容

df -h | sed '/dev/sda1/r /etc/mtab'

将所有不是#开头的行都写入abc.txt

sed '/^#/!w abc.txt' /etc/inittab

将配置文件中除了空行和注释都写入abc.txt

sed -r '/^#|^$/!w  abc.txt' /etc/vsftpd/vsftpd.conf

禁止本地用户登陆

sed  '/^local_enable/s/YES/NO/'  vsftpd.conf

将文件中每行的第2个root替换为ROOT

sed -n 's/root/ROOT/2p' /etc/passwd

将文件中bash替换成nologin,同时将sbin替换成bin

sed 's/bash/nologin/ ; s/sbin/bin/' /etc/passwd

sed将PATH环境变量中的冒号换成换行

echo $PATH | sed 's/:/
/g' 

截取/var/log/messages文件里2020年8月20日15:30:01-16:50:01时间段内的所有访问日志

cat /var/log/messages | egrep "Aug 20" | sed -n '/15:30:01/,/16:50:01/p'
原文地址:https://www.cnblogs.com/CharrammaBlog/p/13611445.html