- ベストアンサー
テキスト処理ツールの選択について
- テキスト処理ツールとしてawkとsedを比較すると、概念やコードの書き方に違いはあるものの、実現できるテキスト処理に大差はないと言えます。
- 最近のユーザーはスクリプト言語を利用する傾向があり、学ぶ場合はスクリプト言語の方が活用シーンが広がるためおすすめです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
(1) sed で出来ることは全部 awk で出来ますが、逆は出来ないことも多い。 sed で書くと簡単にできるのに、awk/Perl/Ruby等では長くなることもある。 sed にもホールドスペースというものがあって、単純な先頭行からの処理で無いことも出来ますが、考えるのが面倒なので、sed を使うのは単純なシーケンシャル処理だけの場合だけですね。 ・単純な文字列置換 ・n行目からn行目までを削除とか、取り出しとか ・特定の文字が出てくるまでを削除とか、取り出しとか (2) テキスト処理で1つということだと、Perl か Ruby か二択でしょう。さらに、現時点では、これから学ぶ人がRubyでなくPerlを選ぶ理由は無いと思います。 あまり複雑な処理をしないのであれば、awkでも用足ります。言語機能が小さいので学びやすい。 (awkでは複雑な処理が出来ないと言うことでは無いです。テキスト処理ならほぼ何でも出来ますが、複雑な処理の場合は、Ruby等の方が言語機能が豊富なので書きやすいケースが多いということ)
その他の回答 (2)
- wormhole
- ベストアンサー率28% (1626/5665)
>「概念、シンタックス、コードの書き方などに違いはあるが、実現できるテキスト処理に大差はない」 かなり違うと思いますよ。 sedは、viで先頭行から順にコマンドだけで処理するようなものですし。 >awkとsedの両刀使いの方は、どのような基準で使い分けているのでしょうか? perlやrubyも含めて、やりたい事を簡単にできるものを使ってます。 >今から学ぶ場合、スクリプト言語を学ぶ方が活用シーン(Webアプリ開発など)も広がり、おすすめでしょうか? perl,ruby,pythonの中からお好みでいいのではないでしょうか。 1つしっかりと習得すれば他のスクリプト言語も割とすんなり使えるようになると思いますよ。
お礼
ご回答ありがとうございます。 >1つしっかりと習得すれば他のスクリプト言語も割とすんなり使えるようになると思いますよ。 こういったアドバイスをいただけて、とてもうれしいです。 Rubyに取り組んでみようかと思います。
- Tacosan
- ベストアンサー率23% (3656/15482)
「awk と sed の両刀使い」ではありません (awk はあきらめて Perl に走ったので) が (1) だけ: 基本的に sed は「1行読み込みなんかしてから 1行出力」なので, このパターンに乗りそうなら sed.
お礼
ご回答ありがとうございます。 sedのsはStream、またsedだけでは不十分なケースもあるので、awkやperlなどの他のツールも習得する必要があるということですね。 >awk はあきらめて Perl に走ったので 何故 awkをあきらめたのかがちょっと気になりました :)
お礼
私の疑問の全てに明確に答えていただきまして、ありがとうございます。 おかげさまで、awkとsedの違い、awk/sedの使い所についてイメージすることができました。 また、テキスト処理ツールについては、awk/sedは代表的な使い方を知り、Rubyは少し本格的に勉強していこうかと思いました。