2012-12-18 108 views
3

我有三個.csv文件是從MS SQLServer中保存查詢輸出的。我需要將這些文件加載​​到一個Informix數據庫中,這需要粘貼一個尾隨分隔符。這是很容易做到的sed使用如何使用sed從第一行刪除第一個字符

s/$/,/g

然而,這些文件還包含在第一行的第一個字符位置(如VIM顯示,但不編或SED)的。

我需要擺脫這個角色。它使用vim的x命令作爲一個字符刪除。我如何使用sed描述這個字符,這樣我就可以刪除它而不刪除這一行。我試過1s/^.//g,但那不起作用。

回答

5

試試這個:

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

或者,如果你想就地編輯的文件:

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

(編輯)顯然s/^.//不報價做它,更新。

+0

'^ \。'只會匹配行開頭的文字'.','g'標誌與重定向一樣是冗餘的,最重要的是,這將在所有匹配行上執行替換,而不僅僅是第一行。 –

+0

@sudo_O修正了它=)不知道爲什麼我把它放在第一位。 –

1

卸下第一線就地第一個字符:

sed -i '1s/^.//' file 
+0

這仍然讓我爲難。因爲你的工作,-e「」和-e''之間有什麼區別(如果有的話)。 – octopusgrabbus

+0

這裏引用並沒有什麼區別,所以我不確定你做了什麼,引用對於shell來說很重要,比如變量擴展和globbing。 –

1

嘗試:

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

這應該刪除從第一行第一個字符。 (嘗試沒有-i參數第一,以確保)

編輯:我最初發布以下,這從每行刪除第一個字符。在重讀這個問題時我意識到這並不是我想要的。

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

謝謝,但這是我想要的第一行。該字節對齊數據只是第一行/第一個字符。 – octopusgrabbus

+0

對不起,編輯了答案。 – nullrevolution

相關問題