sedの末尾に任意の文字を追加しようとしたら意図しない改行が入る
sedの末尾に任意の文字を追加しようとしたら意図しない改行が入る
目次
概要
sedの末尾に任意の文字を追加しようとしたら意図しない改行が入る
環境
事象
原因
解決策
概要
sedの末尾に任意の文字を追加しようとしたら意図しない改行が入る
環境
- Windows 7
- Virtual Box Ubuntu 14.04.02
- UbuntuからWidowsのフォルダを共有
下記のコマンドでホストであるWindowsのディレクトリをゲストのUbuntuでマウントしていました。
sudo mount -t vboxsf {フォルダ名} {マウント先}
事象
この状態でcsvファイルのカラムを増やすため、末尾に「,」を付け加えることにしました。
1,hogehoge 2.fugafuga
のようなcsvファイルに対し
find . -name "*.csv" -print0 | xargs -0 -Ifile sed 's/$/,/g' -i file
を実行したところ、
1,hogehoge , 2.fugafuga ,
となってしまいました。
原因
改行コードがCRLFであることでした。
解決策
nkf -Lu --overwrite *.csv
で改行コードをLFへ変換。 先ほどのsedでうまくいきました。
以上