s/¥t/,/;
でできます。これと同じことを sed で書きたいのですが、どうするといいのでしょうか?
URLはダミーです。
・方法その1 スクリプトをファイルで与える
s/(タブ)/,/g
という内容の command.sed ファイルを作成し、sed -f command.sed file.tsv > file.csv とする。
(タブ)と書いてあるところは本当にタブを入力します。
・方法その2 ”l”コマンドを使う
ぜんぜんスマートではありませんが、タブを一度可視化します。
sed -ne ’l’ file.tsv | sed -e ’s/¥¥t/,/g’ | sed -e ’s/¥$$//’ > file.csv
こんな感じで、手元のFreeBSD5.4では(一応)できました。
’l’コマンドはタブを含む非印字文字を可視化するものです。元々のファイルに変なコードが紛れていると変な結果をはき出すかも知れませんのでご注意を。
それにしても、sedで¥tが使えないのは痛いですね……
GNU sedでは、バージョンとコンパイルオプション次第でもっと普通にできるかも知れませんが、私はよく知りません。
以外と面倒なようですね。
cygwin上での確認しました。
sed ’s/¥t/,/g’
で置換できます。hoge.txtを処理する場合は
sed ’s/¥t/,/g’ hoge.txt
コンパイルオプションの設定がおかしいのでしょうか?
もう一度しらべてみます。
うまくいかないのです。