三剑客-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'
本文来自博客园,作者:菜鸟儿~,转载请注明原文链接:https://www.cnblogs.com/zll1217/articles/15394141.html