sed命令参数:
基本参数
-n:抑制默认输出,只显示匹配的行。
-e:指定 sed 脚本。
-i:直接修改文件内容。
-f:指定包含 sed 脚本的文件。
-r:启用扩展正则表达式。
常用操作
s:替换字符串。
d:删除行。
i:在指定位置之前插入文本。
a:在指定位置之后追加文本。
p:打印匹配的行。
=:显示行号。
y:字符替换。
g:匹配符合要求的所以关键字
1.替换字符串
# 替换第一行中的 "old" 为 "new"
sed 's/old/new/' file.txt# 替换每一行中的第一个 "old" 为 "new"
sed 's/old/new/' file.txt# 替换每一行中的所有 "old" 为 "new"
sed 's/old/new/g' file.txt
2.删除行
# 删除第3行
sed '3d' file.txt# 删除第3到第5行
sed '3,5d' file.txt# 删除包含 "pattern" 的行
sed '/pattern/d' file.txt
3.插入和追加文本
# 在第3行之前插入 "Insert line"
sed '3i Insert line' file.txt# 在第3行之后追加 "Append line"
sed '3a Append line' file.txt
4.打印匹配的行
# 打印包含 "pattern" 的行
sed -n '/pattern/p' file.txt# 打印第3行
sed -n '3p' file.txt
5.显示行号
# 显示所有行的行号
sed '=' file.txt# 显示包含 "pattern" 的行的行号
sed -n '/pattern=' file.txt
6.字符串替换
# 将所有小写字母转换为大写字母
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' file.txt
7.使用正则表达式
# 替换以 "old" 开头的单词为 "new"
sed 's/^old/new/' file.txt# 替换以 "old" 结尾的单词为 "new"
sed 's/old$ /new/' file.txt# 替换包含 "old" 的单词为 "new"
sed 's/\bold\b/new/g' file.txt
8.使用扩展正则表达式
# 使用扩展正则表达式替换 "old" 为 "new"
sed -r 's/(old)/\1new/' file.txt
9.直接修改文件
# 直接修改文件,将所有 "old" 替换为 "new"
sed -i 's/old/new/g' file.txt