如何使用sed从第一行删除第一个字符
我有三个.csv文件是从MS SQLServer中保存查询输出的。我需要将这些文件加载到一个Informix数据库中,这需要粘贴一个尾随分隔符。这是很容易做到的sed使用如何使用sed从第一行删除第一个字符
s/$/,/g
然而,这些文件还包含在第一行的第一个字符位置(如VIM显示,但不编或SED)的。
我需要摆脱这个角色。它使用vim的x
命令作为一个字符删除。我如何使用sed描述这个字符,这样我就可以删除它而不删除这一行。我试过1s/^.//g
,但那不起作用。
试试这个:
sed -e '1s/^.//' input_file > output_file
或者,如果你想就地编辑的文件:
sed -ie '1s/^.//' input_file
(编辑)显然s/^.//
不报价做它,更新。
卸下第一线就地第一个字符:
sed -i '1s/^.//' file
这仍然让我为难。因为你的工作,-e“
这里引用并没有什么区别,所以我不确定你做了什么,引用对于shell来说很重要,比如变量扩展和globbing。 –
尝试:
sed -i '1s/^.\(.*\)/\1/' file
这应该删除从第一行第一个字符。 (尝试没有-i
参数第一,以确保)
编辑:我最初发布以下,这从每行删除第一个字符。在重读这个问题时我意识到这并不是我想要的。
sed -i 's/^.\(.*\)/\1/' file
谢谢,但这是我想要的第一行。该字节对齐数据只是第一行/第一个字符。 – octopusgrabbus
对不起,编辑了答案。 – nullrevolution
'^ \。'只会匹配行开头的文字'.','g'标志与重定向一样是冗余的,最重要的是,这将在所有匹配行上执行替换,而不仅仅是第一行。 –
@sudo_O修正了它=)不知道为什么我把它放在第一位。 –