码迷,mamicode.com
首页 > 其他好文 > 详细

21个SED实例

时间:2016-04-19 00:35:25      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:sed

1,删除文件每行的第一个字符。
sed ‘s/.//‘ install.log
sed -n ‘s/^.//gp‘ /etc/passwd

sed -nr ‘s/(.)(.*)/\2/p‘ /etc/passwd2,删除文件每行的第二个字符。
sed ‘s/.//2‘ install.log
sed  ‘s/(.)(.)(.*)/1\3\/‘ install.log
sed -nr ‘s/(.)(.)(.*)/\1\3/p‘ /etc/passwd
3,删除文件每行的最后一个字符。
sed ‘s/.$//‘ install.log
sed -nr ‘s/.$//p‘ /etc/passwd

sed -nr ‘s/(.*)(.)/\1/p‘ /etc/passwd4,删除文件每行的倒数第二个字符。
sed -r ‘s/(.*)(.)(.)/\1\3/‘ install.log

sed -nr ‘s/(.*)(.)(.)/\1\3/p‘ /etc/passwd
5,删除文件每行的第二个单词。
sed -r ‘s/([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)(.*)/\1\2\4\5/‘ install.log
sed -nr ‘s/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\1\2\3\5/p‘ /etc/passwd
6,删除文件每行的倒数第二个单词。
sed -r ‘s/([a-Z]+)([^a-Z]+)(.*)([a-Z]+)([^a-Z]+)([a-Z+])/\1\2\3\4\6/‘ install.log
sed -nr ‘s/(.*)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]*)/\1\2\4\5\6/p‘ /etc/samba/smb.conf
7,删除文件每行的最后一个单词。
sed -r ‘s/(.*)([^a-Z]+)([a-Z]+)/\1\2/‘ /etc/passwd
sed -nr ‘s/(.*)([^a-Z]+)([a-Z]+)([^a-Z]*)/\1\2\4/p‘ /etc/samba/smb.conf
8,交换每行的第一个字符和第二个字符。
sed -r ‘s/(.)(.)/\2\1/‘ /etc/passwd
sed -nr ‘s/(.)(.)(.*)/\2\1\3/p‘ /etc/passwd
9,交换每行的第一个字符和第二个单词。
sed -r ‘s/(^.)([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)/\5\2\3\4\1/‘ /etc/passwd
sed -nr ‘s/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\1\4\3\2\5/p‘ /etc/samba/smb.conf
10,交换每行的第一个单词和最后一个单词。
sed -r ‘s/([a-Z]+)([^a-Z]+)(.*)([^a-Z]+)([a-Z]+)/\5\2\3\4\1/‘ install.log
sed -nr ‘s/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\1\4\3\2\5/p‘ /etc/passwd
11,删除一个文件中所有的数字。
sed ‘s/[0-9]//g‘ install.log
sed ‘s/[0-9]*//g‘ /etc/passwd
12,删除每行开头的所有空格。
sed ‘s/^ *//‘ install.log
sed -n ‘s/^\ *//p‘ /etc/samba/smb.conf

sed -nr ‘s/( *)(.*)/\2/p‘ testp
13,用制表符替换文件中出现的所有空格。
sed -r ‘s/( +)/\t/g‘ install.log
sed ‘s/ /\t/g‘ ww.txt

sed -n ‘s/\ /\t/gp‘ pass
14,把所有大写字母用括号()括起来。
sed ‘s/[A-Z]/(&)/g‘ /etc/passwd
sed -nr ‘s/([A-Z])/(&)/gp‘ testp

sed -n ‘s/[A-Z]/(&)/gp‘ testp15,打印每行3次。
sed -n ‘p;p;p‘ /etc/passwd

sed ‘p;p‘ pass
16,隔行删除。
sed ‘1d;n;d‘ ww.txt
sed ‘1~2d‘ ww.txt
sed ‘0~2d‘ ww.txt

sed -n ‘1~2p‘ pass
17,把文件从第22行到第33行复制到第56行后面。
cat -n /etc/passwd | sed ‘22h;23,33H;51G‘
sed ‘1,21h;22h;23,33H;44G‘ pass
18,把文件从第22行到第33行移动到第56行后面。
cat -n /etc/passwd | sed ‘22{h;d};23,33{H;d};51G‘
sed ‘22{h;d};23,33{H;d};44G‘ pass
19,只显示每行的第一个单词
sed -r ‘s/([a-Z]+)(.*)/\1/‘ install.log
sed -nr ‘s/([^a-Z]*)([a-Z]+)([^a-Z]+)(.*)/\2/p‘ /etc/passwd
20,打印每行的第一个单词和第三个单词。
sed -r ‘s/([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\1\3/‘ install.log
sed -r ‘s/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\2\6/‘ /etc/passwd

sed -nr ‘s/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\2--\4/p‘ /etc/passwd
21,将格式为    mm/yy/dd    的日期格式换成   mm;yy;dd
echo mm/yy/dd  | sed -n ‘s#/#;#gp‘
date +%m/%Y/%d |sed -n ‘s#/#;#gp‘
sed -r ‘s@/@;@g‘ /etc/passwd

本文出自 “小郑技术博客” 博客,请务必保留此出处http://ko178.blog.51cto.com/220419/1765204

21个SED实例

标签:sed

原文地址:http://ko178.blog.51cto.com/220419/1765204

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!