人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perl の タブをカンマに変更は簡単に
s/¥t/,/;
でできます。これと同じことを sed で書きたいのですが、どうするといいのでしょうか?

●質問者: kaiketsu
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:Perl SED
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● jouno
●20ポイント

http://www.bookshelf.jp/texi/sed/sed-ja_3.html#SEC3

置換だけなら これでいいのでは。


sed ”s/¥t/,/g” filename

◎質問者からの返答

うまくいかないのです。


2 ● ton-boo
●20ポイント

http://www.hatena.ne.jp/

はてな

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では、バージョンとコンパイルオプション次第でもっと普通にできるかも知れませんが、私はよく知りません。

◎質問者からの返答

以外と面倒なようですね。


3 ● joynya
●20ポイント

http://www.lang.nagoya-u.ac.jp/~sugiura/comp/basicsed.html

basicsed.html

cygwin上での確認しました。

sed ’s/¥t/,/g’

で置換できます。hoge.txtを処理する場合は

sed ’s/¥t/,/g’ hoge.txt

◎質問者からの返答

コンパイルオプションの設定がおかしいのでしょうか?

もう一度しらべてみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ