5

我有三个 .csv 文件,它们是在 MS SQLServer 中保存查询时输出的。我需要将这些文件加载​​到 Informix 数据库中,这需要添加尾随分隔符。使用 sed 很容易做到

s/$/,/g

但是,这些文件中的每一个在第一行的第一个字符位置还包含(由 vim 显示,但不是 ed 或 sed)。

我需要摆脱这个角色。它使用 vim 的x命令删除一个字符。我如何使用 sed 来描述这个字符,这样我就可以在不删除该行的情况下删除它。

我试过1s/^.//g了,但这不起作用。

4

3 回答 3

8

试试这个:

sed -e '1s/^.//' input_file > output_file

或者,如果您想就地编辑文件:

sed -ie '1s/^.//' input_file

(已编辑)显然s/^.//没有引用这样做,已更新。

于 2012-12-18T15:31:17.010 回答
2

就地删除第一行的第一个字符:

sed -i  '1s/^.//' file
于 2012-12-18T15:30:21.430 回答
2

尝试:

sed -i '1s/^.\(.*\)/\1/' file

这应该从第一行删除第一个字符。(首先尝试不带-i参数以确保)

编辑:我最初发布了以下内容,这将删除每一行的第一个字符。在重新阅读这个问题后,我意识到这并不是想要的。

sed -i 's/^.\(.*\)/\1/' file
于 2012-12-18T15:31:20.193 回答