0

我需要csv使用可以在shell script.

我目前有head -n -1 file.csv | tail -n +6 file.csv > newfile.csv这个输出一个从第 6 行开始的新 csv,这是我需要的,但是命令的第一部分失败为illegal line count -- -1

4

2 回答 2

0

由于您只需要删除最后一行(和前五行),因此您可以sed更简单地使用:

sed -e '1,5d; $d' file.csv

字面意思:删除第 1 到 5 行;删除最后一行。

如果您需要在末尾删除多行,这将不起作用;sed通常不支持像$-4. 在这种情况下,我可能会使用edor ex

{ echo '1,5d'; echo '$-4,$d'; echo 'w'; echo 'q'; } | ed file.csv

删除第 1,5 行;从最后一行到最后一行删除(删除最后 5 行);写入文件;退出(退出是可选的,但写入不是)。

于 2019-03-08T17:33:29.410 回答
0

我首先tail -n +6 file.csv删除了前 5 行。

然后要删除最后一行,csv我必须翻转最后一行,csv所以最后一行位于顶部,我使用tail -r命令完成了此操作。

然后我从一开始就使用相同的命令来删除现在的第一行tail -n +2,最后使用该命令将其翻转csv回来tail -r

tail -n +11 input.csv | tail -r | tail -n +2 | tail -r > output.csv

于 2018-11-28T14:29:13.357 回答