1

我想通过变量删除 UNIX 文件中的一系列行。比如:a=38 sed '4,$ad' text.csv >/new file 我试过上面的命令,但它不起作用。有人可以帮帮我吗。

4

2 回答 2

0

您需要双引号和环境变量和“删除”命令之间的空格。您还可以使您的 shell 变量名称更有意义:

end=38
sed "4,$end d" text.csv > new.csv
于 2013-05-05T09:49:53.360 回答
0
{
    if ( NR < start_index && NR > end_index )
    {
        print $0;
     }
}

这是一个 AWK 脚本。按如下方式运行(根据需要更改 和 的start_indexend_index

awk -f your_script.awk -v start_index=4 end_index=5 text.csv > new_filename

所以基本上你不是在复制范围内的行。完成后,您可以根据需要删除原始文件rm

于 2013-05-05T09:37:44.797 回答