sedにawkよりも優れた機能がありますか? [閉鎖]

sedにawkよりも優れた機能がありますか? [閉鎖]

私はsed最近しばらく勉強していますが、とても恥ずかしいです。

  • 単一文字コマンド(p、、、、…)を覚えておく必要がありますad
  • コンセプト一つスペアスペースコンテキストを記憶するために使用 - 他の同様のコマンド(、、、、h... )で制御されますxg

私は自分にこう言いました。これはもっと直感的ではないでしょうか?つまり、より詳細なコマンド(例:print代わりにp)を使用するなど一つバッファ – 私の必要に応じて標準変数(例えば)lastUserSeen

だから誰か教えてください:

いいえ、いいえhs、g、p(-nを含む)以外の他のsed構成を使用したり、実際に1970年代半ばにawkが発明されたときに役に立たなかった構成を使用しています。今日、人々は真剣にソフトウェアを書くのではなく、知的な練習のためにこれらの他の構造を使用しています。これは、同等のawkソリューションがよりクリーンで、より効率的で、より移植性が高く、メンテナンス/強化が容易で、他のすべての意味のある方法が優れているためです。

え?私はすぐにそれに飛び込み、それと恋に落ちた。複数行のプログラムの多くは、デバッグなしで最初に実行されたときに機能します。 awkの後の研究は、awkがsedを完全に置き換えることができると思います。またはawkでは簡単に達成できない効果があるいくつかのsed機能(私が逃した)がありますか?awkユーザーがsedを実行する理由はありますか?

編集:これは「どちらが良いか」に関する質問ではなく、機能セットの比較です。 awkで同じように効率的に実装することはできませんが、より多くのawkコードを必要とする機能はsedにありますか?

答え1

適切なファイルをすばやく簡単に編集するには、sed同様のものを作成するよりも-i機能を使用する方がはるかに簡単ですawkgawkバージョン1.4.0以降を使用するプラットフォームには、この問題を解決できる「現在の場所」機能があることを認識してください。

sed -i 's/foo/bar/' filename

sed既存のすべてのスクリプトがそれを使用しているので、間違いなく学びました。選択の余地があれば、新しいスクリプトを書くときにawk通常勝つことになり、コードははるかに読みやすくメンテナンスが簡単です。

関連情報