TOC
sed与awk堪称文本流处理神器,本文提供了sed命令的快速入门参考:
删除命令
删除第N行
sed 3d abc.txt
该命令会删除第三行数据
隔行删除
sed '1~2d' abc.txt
sed '2~2d' abc.txt
第一个命令会删除奇数行数据,第二个命令会删除偶数行数据。
删除从N行开始到M行的数据
sed '5,11d' abc.txt
删除第五行到第十一行的数据。
删除最后一行数据
sed '$d' abc.txt
删除符合条件的行
sed /unix/d abc.txt
该命令会删除所有包含unix关键字的行
删除符合条件的行以及紧跟着的N行
sed '/unix/,+3d' abc.txt
该命令会删除包含unix关键字的行以及该行往下3行
删除符合条件的行到最后的行
sed '/unix/,$d' abc.txt
该命令会删除包含unix关键字的行以及该行往下到文件结尾的所有行
删除所有空行
sed '/^$/d' abc.txt
该命令会删除abc.txt所有空白行
删除所有注释行
我们这里假设通过符号 # 来进行注释
sed '/#.*/d' abc.txt
该命令会删除所有注释行
替换命令
s 代表替换符, / 是定界符
单个替换
sed 's/old/new/'
该命令会将第一个’old’替换成’new’
全局替换
sed 's/old/new/g'
该命令会将所有’old’替换成’new’
对管道的数据流进行替换
echo "old" | sed 's/old/new/'
该命令会输出new
对文件的数据流进行替换
sed 's/old/new/' filename
该命令会将old替换成new并在console中打印出来
对文件的数据流进行替换并保存
sed -i 's/old/new/' filename
通过 -i 选项替换old并保存到当前文件。