使用sed从csv文件中删除行并保存文件而不删除行

时间:2019-08-28 20:39:43

标签: bash sed

我有一个csv文件,我要使用unix sed命令从其中删除第二行。

file.csv表示如下

a
b
c
d

因此它成为newfile.csv

a
c
d

根据我对解决方案的搜索,最简单的方法似乎是使用以下sed命令;

sed '2d' file.csv > newfile.csv

但是,newfile.csv包含已删除的行

d

,而不是预期的

a
c
d

我在macOS Mojave上使用iTerm2

2 个答案:

答案 0 :(得分:1)

在这些情况下,awk也是有用的:

$ awk 'NR != 2' file.csv
a
c
d

除了数字2,awk还会打印每行。

如果更容易理解:

$ cat file.csv | awk 'NR != 2'
a
c
d

答案 1 :(得分:0)

可能是文件格式错误,请尝试以下操作:

dos2unix file.csv

然后选择其中之一

sed '2d' file.csv
awk 'NR!=2' file.csv