sed快速入门

  "sed快速入门"

Posted by     "华恒" on Thursday, January 23, 2014

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并保存到当前文件。