Linux
 Computer >> コンピューター >  >> スマートフォン >> Linux

awkの使用を開始する方法

awk、sed、およびgrepは、LinuxまたはUNIXコマンドラインで私のお気に入りのツールの3つです。それらはすべてかなり強力です。今日は、awkを使いやすくするためにawkでクラッキングを行う方法を見ていきます。次に、物事をもう少し楽しくするための便利なawkワンライナーをいくつか見ていきます。

AWKは、ファイルまたはデータストリームのいずれかでテキストベースのデータを処理するために設計されたプログラミング言語です。 1970年代にベル研究所で作成されました。かなり古いですが、その年齢に騙されないでください。それはそれが何をするかで非常に強力で効率的です。さあ、手を汚しましょう。

awkの複雑な動作と使用法について詳しく説明する前に、awkの基本を始めましょう。この演習では、ダミーファイルを作成して使用します。システムからのログなど、ほとんどすべてのテキストファイルを使用できます。お気に入りのシステム監視ツールの1つであるDstatからのサンプル出力を使用します。出力は次のとおりです:

awkの使用を開始する方法
クリックして拡大

これは、awkが処理するための理想的な出力です。 awkは、コンマまたはタブ区切りのコンテンツに最適です。理由はすぐにわかります。したがって、同様のデータを作成するか、上記の例をコピーしてtest.txtなどのダミーファイルに貼り付けます。 Linuxコンピュータでターミナルウィンドウを起動します。 Linuxのほとんどすべてのフレーバーにはawkが付属しています。なんらかの理由でないものを見つけた場合は、インストールしてください。ターミナルウィンドウで、test.txtファイルを保存したディレクトリから次のように入力します–

#awk {‘print’} test.txt

出力には、テキストファイルの内容全体が含まれている必要があります。その面白さは何ですか。

次に、列を選択してその列だけを印刷する方法を見てみましょう。次のコマンドを実行します。

#awk {‘print $ 1’} test.txt

ここで、テキストファイルの最初の列だけを印刷するようにawkに要求しています。ファイルがタブ区切りファイルであることが自動的に認識され、コンテンツの最初の列だけが印刷されます。出力には次のようなものが表示されます:

—-total-cpu-usage —-
usr
5
13
8
0
1
1
1
0
1
1

好きな列でも同じことができます。 awkで上記の3番目の列の変更コマンドを次のコマンドに出力する場合:

#awk {‘print $ 3’} test.txt

awkに複数の列を印刷させることもできます。したがって、1列目、3列目、および7列目を印刷する場合は、コンマで区切ってコマンドに追加します。

#awk {‘print $ 1、$ 3、$ 7′} test.txt

あなたのためにトリックをするでしょう:

—-total-cpu-usage--net / total-
usr idl read
5 93 154k
13 87 0
8 92 0
0 99 0
1 97 0
1 98 0
1 99 0
0 99 0
1 99 0
1 100 0

/ etc / passwordファイルのように、データがスペースやタブではなくコロンで区切られているトリッキーなファイルがある場合、awkはそれを自動的に取得しません。このような場合、正しいセパレーターを使用してawkにフィードできます。次のようなコマンドを使用して、ファイルの2番目の列を出力します。

#awk -F’:’ {‘print $ 1’} / etc / passwd

このコマンドは、システム上のすべてのユーザーのユーザー名を出力します。

アップル
マンゴー
バナナ
スイカ
キウイ
オレンジ

他のタイプのセパレーターでも同じことができます。 awkを使用してログファイルを解析することもできます。たとえば、WebサーバーでアクセスされたすべてのIPアドレスと関連するWeb URLを表示する場合は、awkを使用してWebサーバーのアクセスログを解析し、この情報を取得できます。次のコマンドを使用します:

#awk‘$ 9 ==200 {print $ 1、$ 7}’ access.log

199.63.142.250 / 2008/10 / my-5-favourite-hangouts /
220.180.94.221 / 2009/02 / querious-a-mysql-client-for-the-mac /
67.190.114.46 / 2009/05 /
173.234.43.110 / 2009/01 / bicycle-rental /
173.234.38.110 /wp-comments-post.php

このような解析を使用すると、誰かが情報を盗んでいる可能性があるため、誰かがあなたのWebサイトに頻繁にアクセスしているかどうかを判断できます。この情報を並べ替えることもできます。特定のIPアドレスがWebサイトにアクセスした回数を知りたいとします

#awk‘$ 9 ==200 {print $ 1}’ access.log |並べ替え| uniq -c | sort -nr

46 122.248.161.1
35 122.248.161.2
26 65.202.21.10
24 67.195.111.46
19 144.36.231.111
18 59.183.121.71


  1. SvnX を使用して Subversion を開始する

    開発者は、バージョン管理ソフトウェアを使用してコードの変更を追跡できます。これは、チームの一員として作業しているプロジェクトでは不可欠であり、発生した変更を追跡できます。 GIT などのサービスは、特にオープンソース ソフトウェアで人気がありますが、Subversion (SVN) などの代替サービスは、より詳細な制御を提供します。 さまざまな SVN クライアントが存在しますが、Mac ユーザーにとって一般的なオプションは SvnX です。このシンプルで無料のオープンソース Mac SVN クライアントに初めて触れたのは 10 年以上前で、それ以来、多くの新機能と変更点に飛び込んでいます。

  2. Parallels を使用して Mac で Windows を入手するには?

    両方のプラットフォームを頻繁に使用する場合、Mac で Windows OS とアプリを使用すると便利です。 Mac はユーザーに敵対的であると言われているため、これがどのように可能であるかを考える必要があります。まあ、それを可能にするアプリがあります。 Mac で Windows を使用する最も一般的な方法の 1 つは、Parallels を使用することです。 Parallels を使用して Mac で Windows を入手する簡単な手順 Mac コンピューターを使用していて、重要な Windows アプリの一部を同じ画面で実行したい場合、Parallels はその目的を解決します。この