8.sed实例讲解

来源:互联网 发布:s7_200 数据块定义 编辑:程序博客网 时间:2024/04/29 05:42

sed实例讲解


1.删除文件每行的第二个字符。

sed -r 's/(.)(.)/\1/' a.txt   使用分组操作实现


2.删除文件每行的最后一个字符。

sed -r 's/(.*)(.)/\1/ a.txt


3.删除文件每行的倒数第二单词。

sed -r 's/(.*)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+)/\1\2\4\5/' a.txt  


4.交换每行的第一个字符和第二个字符。

sed -r 's/(.)(.)/\2\1/' a.txt


5.交换每行的第一个单词和最后一个单词。

sed -r 's/([a-Z]+)(.*)([^a-Z]+)([a-Z]+)/\4\2\3\1/' a.txt 


6.删除一个文件中的所有数字。

sed 's/[0-9]//g' a.txt


7.用制表符替换文件中出现的所有空格。

sed 's/ /\t/g' a.txt


8.把所有大写字母用括号()括起来。

sed -r 's/([A-Z])/(\1)/g' a.txt


9.打印每行三次
sed 'h;G;G' a.txt

sed 'p;p'   a.txt


10.隔行删除

sed '0~2{=;d}' a.txt    =作用是显示行号


11.把文件从第22行到第33行复制到第56行后面。

sed '22h;23,33H;56G' a.txt


12.把文件从第22行到第33行移动到第56行后面。

sed '22{h;d};23,33{H;d};56G' a.txt


13.只显示每行的第一个单词。(这里的单词表示连续的字母即可)

sed -r 's/([^a-Z]*)([a-Z]+)(.*)/\2/' a.txt


14.打印每行的第一个单词和第三个单词。

sed -r 's/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\2\6/' a.txt


15.将格式为mm/yy/dd的日期格式换成 mm;yy;dd
date '+%m/%y/%d' | sed 's#/#;#g'    # 代替分割符 /
前半句表示 得到当天日期,并以/分隔
0 0