Unix 使用sed从csv文件中删除多行

Unix 使用sed从csv文件中删除多行,unix,csv,sed,Unix,Csv,Sed,我正在学习从命令行使用csv文件。我想使用sed从文件中删除几行。我已删除了带有此cat file.csv | sed 1,2d>file.csv的文件头 现在我想从文件中再删除几行(第3行、第10行、第12行和第28-35行),但我不知道如何删除。如果有任何帮助,我将不胜感激。使用-e标志将多个命令传递给一个sed调用,如下所示: seq 1 40 | sed -e 1,2d -e 3d -e 10d -e 12d -e 28,35d 根据sed实现,您可以按如下方式将它们分开: cat f

我正在学习从命令行使用csv文件。我想使用
sed
从文件中删除几行。我已删除了带有此
cat file.csv | sed 1,2d>file.csv
的文件头


现在我想从文件中再删除几行(第3行、第10行、第12行和第28-35行),但我不知道如何删除。如果有任何帮助,我将不胜感激。

使用
-e
标志将多个命令传递给一个
sed
调用,如下所示:

seq 1 40 | sed -e 1,2d -e 3d -e 10d -e 12d -e 28,35d

根据sed实现,您可以按如下方式将它们分开:

cat file.csv | sed "1,2d;10d;12d;28,35d" > file2.csv

我收到错误:
-bash:10d:command-not-found
,对于
12d
28,35d
也是如此。与以前一样,
1,2d
正在工作。是否可能是csv的结构造成的?文件不是原因。我的例子不能在所有情况下都有效。我在Windows上运行它,可能是sed版本,但不完全兼容。明天我得再测试一下。对不起,这条线索不好。有些SED不使用分号。多次使用
-e
标志。@杰夫:这可能不是通过
-e
使用多个命令的改进,但是引用脚本似乎可以使其工作。如果您从bash得到错误,可能是因为您忘记使用引号-它认为“;”启动一个新命令并尝试运行10d命令。