之前我们学习了 linux sed命令,
linuxsed命令(linux sed 命令详解 -i )新手入门
忘记的朋友可以去看看。
这篇文章,主要给是让大家来练习sed 命令说法的:
(1) 将/etc/passwd的前10行重定向到家目录的baimei.txt中
cat /etc/passwd|head > ~/baimei.txt
(2)显示文件的第3行
sed -n '3p' baimei.txt
(3).显示文件的最后一行
sed -n '$p' baimei.txt
(4) .显示文件的第3行-第7行
sed -n '{3,7p}' baimei.txt
(5) .显示文件中包含root的行
sed -n '/root/p' baimei.txt
(6)显示文件包含adm到shutdown之间的所有行
sed -n '/adm/,/shutdown/p' baimei.txt
(7) 将文件的第1行删除
sed -i '1d' baimei.txt
sed -i 表示 修改源文件, 不带的话 直接把结果输出到屏幕上
(8) 删除文件的第3行到第6行内容
sed '/3/,/6/d' baimei.txt
(9) 删除包含shutdown的行
sed '/shutdown/d' baimei.txt
(10) 删除匹配字符串var-mail之间的行
sed '/var/,/mail/d' baimei.txt
(11) 将包含shutdow的整行替换为baimeidashu
sed '/shutdown/s#.*#baimeidashu#g' baimei.txt
sed '/shutdown/c baimeidashu' baimei.txt
(12) 将包含root或者mail的整行替换为test
首先找到包含 root 或者 mail 的整行
sed -r '/root|mail/ s#.*# test#g' baimei.txt
(13).将文件中所有的root单词替换为Linux
sed 's#root#Linux#g' baimei.txt
(14)将文件中的所有的冒号: /和x替换为空
sed 's#[:/x]# #g' baimei.txt
(15).统计文件中每个单词出现的次数
sed 's#[:/x0-9]# #g' baimei.txt |xargs -n1|sort|uniq -c|sort -rn
(16)将文件中的第5行的spool替换为Linux
cat /etc/passwd|head > ~/baimei.txt
sed '5s#spool#Linux#g' baimei.txt
17.统计文件中排除特殊字符数字空格 每个字母出现的次数
cat /etc/passwd | head > ~/baimei.txt
sed 's#[:/0-9 ]##g' baimei.txt |grep -o . |sort|uniq -c| sort -rn
sed 's#[^a-Z]##g' baimei.txt |grep -o . | sort| uniq -c |sort -rn
grep -o . 显示所有的字母 点 注意
(18).使用sed取出正确的身份证号
身份证号 的 1.txt 内容为:
李 2113421234
张 500224197
王 1233423423432baimei
万 5baimei
吕 lzy235872451234814
孔 150000123874591242
夏 222113859123487192
赵 37142518322922103X123
大 37142X183229221032
ok 371425183229221032
赵 4234137142518322922103X123
李 42341371425183339111035123
sed -n -r 's#^.* (\b[0-9]{17}[0-9X]\b)#\1#gp' 1.txt
(19).sed后向取出IP地址
ifconfig eth0
ifconfig eth0 | sed -r -n 's#^.*inet(.*) netmask.*$#\1#gp'