我正在尝试理解使用以下命令的shell脚本:
sed '$d;1,2 d;s/^ //' $file1 > $file2
我认为s/^ //
摆脱了空白行,但无法弄清楚$d;1,2 d;
的作用。有人可以解释一下吗?
答案 0 :(得分:4)
这是删除文件的最后一行和前两行。
sed
' d' elete命令需要一个或两个参数。如果是,则删除将发生在该行;如果是两个,则删除将发生在匹配第一个参数的行与匹配第二个参数的行之间。参数可以是正则表达式或行号。 sed
还会在最后一行识别$
。
所以$d
正在删除最后一行。并且1,2d
正在删除第1行到第2行。
有关所有血腥的详细信息,请参阅man sed
。