高度なLinuxコマンド:grep、sed、awkファミリーバケット(テキスト処理テクノロジーの詳細な例)

目次

1.序文レビュー

2、grep

1. grepとは何ですか?

2.grepの使用法の詳細な例の分析

三、sed

1. sedとは何ですか?

 2.sedの使用法の詳細な例の分析

4、awk

1. awkとは何ですか?

2、awkの使用法の詳細な例の分析

五数要約


1.序文レビュー

以前に書いた記事「Linuxの基本コマンドとプログラミング環境の実験」は、かつては話題の記事であり、人気のある記事になりました。ご存知のように、Linuxは強力な機能と高い安定性を備えた強力なオペレーティングシステムであり、大企業や企業で広く使用されています。Linux関連のコマンド操作と知識システムを習得することは非常に重要です。Linuxは広範で深遠です。元のデザイナーの知恵は、それを学んだときにのみ感じることができます。もちろん、Linuxシステムは、大牛の知恵の結晶でもあります。常に最適化および更新されており、多くのバージョンタイプがあります。導出されています。比較的よく知られていて一般的に使用されているディストリビューションはUbuntuです。

この記事では、高度なステップであるLinuxの学習と探索を続けます。前の記事に基づいて、主にテキスト処理テクノロジー、grep、sed、awk 3コマンドなどの詳細な例を通じて、より高度なコマンドを習得し、魔法と強力なLinux!

Linuxシステム学習関連記事:

  1. Linuxの基本的なコマンドとプログラミング環境の実験[ https://blog.csdn.net/Charzous/article/details/108204520 ]
  2. Linux環境プログラミングのプロセス間通信メカニズム、Linuxで遊んで、より完全に理解してください![ https://blog.csdn.net/Charzous/article/details/108287075 ]

2、grep

1. grepとは何ですか?

UNIX grepファミリは、コマンドgrep、egrep、およびfgrepで構成されています。grepコマンドは、ファイル内で正規表現をグローバルに検索し、その式を含むすべての行を出力します。egrepおよびfgrepコマンドは、grepのバリアントです。egrepコマンドは、より多くのreメタ文字をサポートする拡張grepです。fgrepコマンドはfixedgrepと呼ばれます。

grepコマンド形式:

grep [オプション]パターンファイル名

patternは正規表現、filenameはターゲット操作ファイルの名前、optionはオプションの項目です。

-私

大文字と小文字を無視する
-n 行番号と一致した行を印刷します
-v 一致しない行を印刷する
-c 一致する行数のみを出力します
-w 指定されたパターンを文字列として検索します
-l 行が一致するファイル名のみを印刷する

2.grepの使用法の詳細な例の分析

現在のディレクトリにドナーのテキストがある場合、例を通してgrepコマンドの使用法を学びましょう。

Mike Harrington:(510) 548-1278:250:100:175
Christian Dobbins:(408) 538-2358:155:90:201
Susan Dalsass:(206) 654-6279:250:60:50
Archie McNichol:(206) 548-1348:250:100:175
Jody Savage:(206) 548-1278:15:188:150
Guy Quigley:(916) 343-6410:250:100:175
Dan Savage:(406) 298-7744:450:300:275
Nancy McNeil:(206) 548-1278:250:80:75
John Goldenrod:(916) 348-4278:250:100:175
Chet Main:(510) 548-5258:50:95:135
Tom Savage:(408) 926-3456:250:168:200
Elizabeth Stachelin:(916) 440-1763:175:75:300

 トピック:

  1. 文字列Tomを含むすべての行を印刷します。
  2. 人の名がJで始まるすべての行を印刷します。
  3. 175で終わるすべての行を印刷します。
  4. 175を含まないすべての行を印刷します。
  5. 電話番号が206市外局番にあるすべての行を印刷します。

回答:

1. grep 'Tom' donors
2. grep '^J' donors
3. grep '175\>' donors
4. grep -v '175' donors
5. grep '(206)' donors

結果:

三、sed

1. sedとは何ですか?

sedコマンドは、合理化された非対話型エディター(ストリームエディター)です。sedプログラムはエディターと対話的に機能しませんが、コマンドラインで編集コマンドを入力し、ファイルに名前を付けて、画面に編集コマンドの出力を表示することができます。デフォルトでは、すべての行が画面に印刷されます。sedエディターは非破壊的です。シェルリダイレクトを使用して出力を保存できます。そうしないと、ファイルの内容は変更されません。

sedコマンド形式:

sed [オプション] '[アドレス]コマンド'ファイル名

一般的に使用されるオプション:-nは、一致する行のみが印刷されることを意味します

commandは/ pattern /の形式の正規表現です。ここで、sedコマンドはgrepとは異なり、一致したテキストに対して実行される操作を示す追加のアドレスオプションがあります。一般的に使用されるのは次のとおりです。

d 行を削除する
s 一致した文字列を置き換えます
p 印刷行
a

現在の行に1行以上のテキストを追加します

 2.sedの使用法の詳細な例の分析

 

トピック:

  1. Johnの名前をJoanthanに変更します
  2. 最初の3行を削除します
  3. 5行目から10行目を印刷します
  4. マイクを含む行を削除する
  5. 空白行をすべて削除する

 

回答:

1.sed 's/John/Joanthan/' donors
2.sed '1,3d' donors
3.sed -n '5,10p' donors
4.sed '/Mike/d' donors
5.sed '/^[ \t]*$/d' donors

結果:

4、awk

1. awkとは何ですか?

Awkは、データの操作とレポートの生成に使用されるUNIX / Linuxプログラミング言語です。nawkは新しいバージョンであり、nawkはGnuバージョンです。データは、標準入力、1つ以上のファイル、またはプロセスの出力から取得できます。Awkは、コマンドラインでの簡単な操作に使用することも、大規模なアプリケーションのプログラムに書き込むこともできます。awkはデータを操作できるため、シェルスクリプトや小さなデータベースの管理に欠かせないツールです。

awkコマンド形式:

  1. awk 'パターン'ファイル名
  2. awk '{action}'ファイル名
  3. awk 'パターン{アクション}'ファイル名

また、上記の2つのコマンドと同様に、awkの方が強力です。区切り文字を指定して、フィールドに応じて文字列を取り出すことができます。

2、awkの使用法の詳細な例の分析

トピック:

  1. すべての電話番号を印刷する
  2. ダンの電話番号を印刷する
  3. Dで始まるすべての姓を印刷します
  4. メインの選挙献金を印刷します。各値は、先頭にドル記号を付けて印刷する必要があります。例:$ 250 $ 100 $ 175。
  5. 各人の名前と総貢献度を印刷します。

 

回答:

1.awk -F: '{print $2}' donors
2.awk -F: '/Dan/{print $2}' donors
3.awk -F'[ :]' '$2~/^D/{print $2}' donors
4.awk -F'[ :]' '$2~/Main/{print "$"$5,"$"$6,"$"$7}' donors
5.awk -F: '{print $1,$3+$4+$5}' donors

結果:

  1. (406)298-7744
  2. ドビンズ
    Dalsass

  3. $ 50 $ 95 $ 135

  4.  

五数要約

この記事では、引き続きLinuxの研究と調査を行い、一歩前進し、詳細な例、主にテキスト処理テクノロジ、grep、sed、awk 3コマンドを通じてより高度なコマンドを習得し、魔法のような強力なLinuxを感じます。詳細な例の研究から、正規表現を習得することも非常に重要です。ご存知のように、Linuxは強力な機能と高い安定性を備えた強力なオペレーティングシステムであり、大企業や企業で広く使用されています。Linux関連のコマンド操作と知識システムを習得することは非常に重要です。

 

良いと思う場合は、ブックマーク、フォロー、質問がある場合は直接コメント、交換して学ぶなど、「ワンクリック、3リンク」へようこそ。

Linuxシステム学習関連記事:

  1. Linuxの基本的なコマンドとプログラミング環境の実験[ https://blog.csdn.net/Charzous/article/details/108204520 ]
  2. Linux環境プログラミングのプロセス間通信メカニズム、Linuxで遊んで、より完全に理解してください![ https://blog.csdn.net/Charzous/article/details/108287075 ]

私のCSDNブログ:https://blog.csdn.net/Charzous/article/details/110507267

おすすめ

転載: blog.csdn.net/Charzous/article/details/110507267