「Unix」または「unix」という単語を含むaa.txtファイルの行を印刷するコマンドを実行します。 grep、awk、およびsedコマンド(3つの異なるコマンド)を試しました。

「Unix」または「unix」という単語を含むaa.txtファイルの行を印刷するコマンドを実行します。 grep、awk、およびsedコマンド(3つの異なるコマンド)を試しました。

どのように選択しますか? 「Unix」と「Unix」

私の考えでは

  1. awkを使う

    $ awk ~"Unix|unix" {print $0}.aa.txt
    
  2. grepを使用する手がかりなし

  3. sedを使う

    $ sed "/Unix/p" aa.txt | "/unix/p" aa.txt
    

私の考えでは、これらはすべて間違っていると思います。

だから答えてください..わかりません..

ベストアンサー1

文字列と一致Unixし、またはいずれかの正規unix表現です。[Uu]nix[Uu]Uu

次の3つのツールを使用して、この式に一致するすべての行を抽出できます。

  • awk '/[Uu]nix/' file

    これは、指定された条件が一致すると現在のレコード(行)を印刷するというawk事実を利用する「ショートフォーマット」プログラムです。awk不要なコードをすべて含む「長い手」のバリエーションは次のとおりですawk '$0 ~ /[Uu]nix/ { print $0 }' file

  • grep '[Uu]nix' file

    このgrepユーティリティは、単に与えられた式に一致する行を抽出します。

  • sed -n '/[Uu]nix/p' file

    このコマンドは、各行のデフォルト印刷をsedオフ(使用)します。-n次に、与えられた式に一致する行だけを明示的に印刷します。

    を使用して、sed次を選択することもできます。削除見たくない行は、各行のデフォルト印刷を使用して残りの行を印刷します。 sed '/[Uu]nix/!d' file

awkgrepおよびで、sedこのgrepユーティリティは、特定の式に一致する行を抽出する操作に最適です。awkより多くの処理または集計を必要とするタスクと状態のsed保存がほとんどまたはまったく必要ない限り、1行の修正に最も頻繁に使用されます(ただし、3つのツールはすべてそのアプリケーションで重複します)。

おすすめ記事