美元的sed命令

时间:2017-02-03 20:58:38

标签: shell unix

我正在尝试理解使用以下命令的shell脚本:

sed '$d;1,2 d;s/^ //' $file1 > $file2

我认为s/^ //摆脱了空白行,但无法弄清楚$d;1,2 d;的作用。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:4)

这是删除文件的最后一行和前两行。

sed' d' elete命令需要一个或两个参数。如果是,则删除将发生在该行;如果是两个,则删除将发生在匹配第一个参数的行与匹配第二个参数的行之间。参数可以是正则表达式或行号。 sed还会在最后一行识别$

所以$d正在删除最后一行。并且1,2d正在删除第1行到第2行。

有关所有血腥的详细信息,请参阅man sed