1

我想删除文本文件的第二行。使用vimex任何类型的文本编辑器表单脚本。我想出了这些命令,但对我不起作用。

#!/bin/sh

iconv -f Utf-16le -t utf-8  ~/Desktop/upload.csv -o ~/Desktop/finalutf.csv

vim ':2d|wq' ~/Desktop/finalutf.csv 

ex -sc '%s/\r//e|x' ~/Desktop/finalutf.csv

该脚本.sh是可执行的。第一行代码有效,第三行也有效,但第二行不行。我试图查看用于删除特定行的 vim 命令的文档,并在终端上进行了尝试,并且它有效(:2d)尝试在脚本中使用它似乎令人困惑。我是 Ubuntu 以及 vim 和脚本的新手,尝试学习似乎已经够难了,在它的文档中,对于学习 vim 的初学者来说,解释了很多复杂的命令。

4

2 回答 2

6

sed这就是为之而生的东西。

sed -i 2d ~/Desktop/finalutf.csv

但是,如果您必须使用 vim,您可以这样做

vim -c "2d|wq" ~/Desktop/finalutf.csv
于 2012-10-01T14:25:27.650 回答
4

这对我有用:

vim -c "2d|wq" infile
于 2012-10-01T14:25:40.653 回答