我需要csv
使用可以在shell script
.
我目前有head -n -1 file.csv | tail -n +6 file.csv > newfile.csv
这个输出一个从第 6 行开始的新 csv,这是我需要的,但是命令的第一部分失败为illegal line count -- -1
由于您只需要删除最后一行(和前五行),因此您可以sed
更简单地使用:
sed -e '1,5d; $d' file.csv
字面意思:删除第 1 到 5 行;删除最后一行。
如果您需要在末尾删除多行,这将不起作用;sed
通常不支持像$-4
. 在这种情况下,我可能会使用ed
or ex
:
{ echo '1,5d'; echo '$-4,$d'; echo 'w'; echo 'q'; } | ed file.csv
删除第 1,5 行;从最后一行到最后一行删除(删除最后 5 行);写入文件;退出(退出是可选的,但写入不是)。
我首先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