赞
踩
sed 作为Linux三剑客之一,依赖于正则表达式,是强大的文本处理工具,可以根据条件对文本进行删除、修改、添加等操作。
选项 | 解释 |
---|---|
-e | 指定要执行的命令 |
-n | 只输入处理后的行 |
-i | 只编辑文件而不输入结果 |
指令 | 解释 |
---|---|
p | 输出指定的行 |
d | 删除指定的行 |
s | 替换 |
r | 读取文件 |
i | 输入 |
p;n | 奇数行 |
n;p | 偶数行 |
q | 退出sed |
w | 另存为新文件 |
h | 保存当前模式到一个缓冲区 |
G | 取出保存的模式 |
y | 对应替换 |
c | 取代 |
1.显示文件所有内容,相当于cat
sed -n 'p' file
2.显示第n行到第m行
sed -n '1,5p' file
3.显示奇数行
sed -n 'p;n' file
4.显示偶数行
sed -n 'n;p' file
5.显示第n行到第m行中的奇数行
sed -n 'N,M{p;n}' file
6.显示第n行到第m行中的偶数行
sed -n 'N,M{n;p}' file
7.显示第n行
sed -n 'Np' file
8.显示尾行
sed -n '$p' file
9.从第n行开始,连续显示x行
sed -n 'N,+Xp' file
10.显示文件中包含某个字符的所有行
sed -n '/xxx/p' file
11.显示文件的行号(只显示行号,不显示内容)
sed -n '=' passwd
12.显示带有某个字符所在行的行号(只显示行号,不显示内容)
sed -n '/xxx/='
1.在含有某个字符的行前面添加新行
sed '/XXX/i XXX' file
如:
2.在含有某个字符的行后面添加新行
sed '/XXX/a XXX' file
如:
3.在第n行前/后添加新行
sed 'Na/iXXX' file
如:在第二行后添加新行123
在第二行前添加新行123
1.删除第n行
sed 'Nd' file
2.删除最后一行
sed '$d' file
3.删除以某个字符结尾的行
sed '/XXX$/d' file
4.删除以某个字符开头的行
sed '^XXX/d' file
5.删除第n-m行
sed 'N,Md' file
6.删除空行
sed '/^$/d' file
7.删除含有某个字符的行
sed '/XXX/d' file
8.删除不含某个字符的行
sed '/XXX/!d' file
1.删除文件中的某个字符(全文)
sed 's/XXX//g' file(实际就是将这个字符替换为空)
2.将一个字符替换为另一个字符
sed 's/XXX/YYY/g' file
3.将所有含有某个字符的行替换
sed '/XXX/c YYY' file
4.将包含某个字符的行,行中的某个字符替换为新的字符
sed '/XXX/s/YYY/ZZZ/g' file
如:将包含root的行,行中的0替换为123
替换前
替换后
5.将每行的第n个指定字符替换为另一个字符
sed 's/XXX/YYY/Np' file
如:将每行的第二个root替换为123
替换前
替换后
6.将第n-m行中的某个字符替换为新字符
sed 'N,Ms/XXX/YYY/g' file
如:将2-7行中的bin替换为123
7.在第n行行首插入字符
sed 'Ns/^/XXX/' file
8.在每行行首插入字符
sed 's/^/XXX/' file
9.在每行行尾插入字符
sed 's/$/XXX/' file
10.将第n行替换为新的一行
sed 'NcXXX' file
如:将第2行替换为+++++
11.对应替换
sed 'y/XXX/YYY/' file
如:替换前
替换后:将第二行中的bin对应替换为123(意思是b=1,i=2,n=3)
1.将包含某个字符的行另存为一个新文件
sed '/XXX/w new_file' file
2.将包含某个字符的行移至文件末尾
sed '/XXX/{H;d};$G' file
3.将第n-m行移至文件末尾
sed 'N,M{H;d};$G' file
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。