三剑客-sed相关练习题

测试文件为cp /etc/passwd ~/,不要直接修改passwd文件

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

方法1:sed
sed -i 's/.//' test.txt
方法2:vim
使用vim编辑器:光标在第一行第一个du字符上时: 
ctrl+v ;选中每一行的第一个字符,按 d(小写字母)--删除;
按ESC,输入 :wq 保存退出。

 

2,删除文件每行的第二个字符。

sed -r 's/(.)(.)(.*)/\2/g' passwd.bak 

 

3,删除文件每行的最后一个字符。

sed -i 's/.$//' passwd.bak 

 

4,删除文件每行的倒数第二个字符。

sed -r 's/(.*)(.)(.)/\1\3/g' passwd.bak

 

5,删除文件每行的第二个单词。

sed -r 's/^([a-Z]+[^a-Z]+)[a-Z]+/\1/g' passwd.bak 

 

6,删除文件每行的倒数第二个单词。

sed -r 's/[a-Z]+([^a-Z]+[a-Z]+)$/\1/g' passwd.bak 

 

7,删除文件每行的最后一个单词。

sed -r 's/(.*)([a-Z]+)([a-Z]+)/\1\2/g' passwd.bak 

 

8,交换每行的第一个字符和第二个字符。

sed -r 's/^(.)(.)(.*)$/\2\1\3/g' passwd.bak 

 

9,交换每行的第一个字符和第二个单词。

10,交换每行的第一个单词和最后一个单词。

11,删除一个文件中所有的数字。

sed -r 's/[0-9]+//g' passwd.bak 

 

12,删除每行开头的所有空格。

sed -r 's/^ //g' passwd.bak 

 

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

14,把所有大写字母用括号()括起来。

sed -r 's/[A-Z]/(&)/g' passwd.bak 

 

15,打印每行3次。

sed 'p;p' passwd.bak 

 

16,隔行删除。

17,vim快捷键,把文件从第22行到第33行复制到第56行后面。

使用vim 移动鼠标到第21行 -->21gg, 
复制12yy ,移动鼠标到56行-->56gg , 
粘贴p

 

18,vim,快捷键,把文件从第22行到第33行移动到第56行面。

使用vim 移动鼠标到第21行 -->21gg, 
剪贴12dd ,移动鼠标到56行-->56gg , 
粘贴p

 

19,只显示每行的第一个单词。

sed -r 's/^([a-Z0-9]+)([^a-Z]+)(.*)/\1/g' passwd.bak 

 

20,打印每行的第一个单词和第三个单词。

21,将格式为 mm/yy/dd 的日期格式换成 mm;yy;

echo mm/yy/dd|sed -r 's/\//;/g'

 

posted @ 2021-10-11 17:07  菜鸟儿~  阅读(107)  评论(0编辑  收藏  举报