awkのツールでのLinuxの使用
免責事項:この記事はブロガーオリジナル記事です、続く BY-SAのCC 4.0を 著作権契約、複製、元のソースのリンクと、この文を添付してください。
ディレクトリ
AWK
awkは、見つけるために、grepをする相対的な、強力なテキスト分析ツールで編集し、そのデータ解析でのawk、sedののとレポート生成、特に強いです。AWKは、デフォルトの区切りスペースとして、単に行毎にファイルを読み取るために各スライス列、および、分析の種々の切断部分です。awkはスクリーン処理に比べ、優位ラインプロセッサで、大きなファイルを扱う際には、通常のテキスト情報をフォーマットするために使用され、遅いのメモリや処理の問題のうち、表示されません。
AWKプロセスは、順次出力し、各ラインを処理し、そして
awkの使い方:
パラメータawkのBEGIN {} // {アクション1;アクション2} 'END {}ファイル名
パラメータ:
- 区切り文字を指定-F
- スクリプトを呼び出す-f
- -v定義変数
開始{}初期化ブロックは、各行、初期化コードを処理する前に、主にグローバル変数が使用され、セパレータがFS設けられています
//マッチングブロックは、文字列または正規表現かもしれ
{}コマンド・コード・ブロックは、1つのまたは複数のコマンドを含む、複数のコマンド、分離
END {}コードブロックの終わり、行処理が再度実行された後に各コードブロックは、主に、最終的なダイジェスト情報又は出力端を算出します
例:ルート線AWK 'BEGIN {X = 0} /ルート/ {X + = 1} END {プリント "私が見つける"、X、 "ルート線"}' の総数/ etc / passwdファイル統計/ etc / passwdファイルが含まれています
意味awkの文字:
- $ 0が現在の行全体を表し
- 行の最初のフィールドごとの$ 1
- NFフィールド変数番号
- 各ラインのNRレコード番号、マルチファイル記録インクリメント
- FNRやNR似ていますが、より多くのドキュメントは最初から各ファイルをインクリメントされていません
- \ Tタブ
- \ N改行
- FSは、区切り文字の定義を開始します
- RSレコード区切り文字入力、デフォルトの改行(すなわち、ラインごとに、テキスト入力のベースとなって)
- 〜含まれてい
- !〜含まれていません
- ==等しい、すべて等しく、正確な比較でなければなりません
- !=等しくない、正確な比較
- &&論理AND
- ||論理和(OR)
- +は少なくとも一つの一致、またはAを表し
- / [0-9] [0-9] + / 2以上のデジタル
- / [0-9] [0-9] * /または1つ以上のデジタル
- OFS出力フィールドセパレータ。デフォルトは空白ですが、それは他に変更することができます
- ORS出力レコードセパレータ、改行デフォルト、即ち、処理結果はラインによってスクリーン線に出力されます。
- -Fの[#/]は、三のデリミタを定義します
print印刷
- 印刷が指定されたコンテンツを印刷するための主なコマンドのawkで、あなたはまた、printf関数を使用することができます
- AWK '{印刷}' / etc / passwdファイル== AWK '{$ 0印刷}' / etc / passwdファイル
- AWK「{印刷 『』}」/ etc / passwdファイルpasswdの内容を出力しないが、空白行の同じ数の出力、さらにラインによりAWKプロセステキスト行を説明します
- AWK「{印刷 『A』}」の出力ラインの/ etc / passwdファイルと同じ数、文字の一つだけライン
- awkの-Fは: ":" '{$ 1印刷}' / etc / passwdファイル/ etc / passwdファイル==のawk -F '{$ 1印刷します}'
- AWK -F: '{印刷$ 1 $ 2}' 入力フィールド1、中間の仕切り
- AWK -F: '{$ 1、$ 3 $ 6印刷}' OFS = "\ tの" / etc / passwdファイル1,3,6出力フィールド、デリミタとしてタブ
- AWK -F: '{$ 1印刷; $ 2を印刷}' / etc / passwdファイル入力フィールド2、改行
- AWK -Fは:**中間パーティションに/ etc / passwdファイル入力フィールド1、{$ 1印刷 "**" $ 2印刷します} '
- awkの-F: '{印刷 "名:" $ 1 "\ TID:" $ 3}' / etc / passwdファイルのカスタム形式の出力フィールド1,2
- AWK -F: '{印刷NF}' / etc / passwdファイル各表示ライン番号フィールド
- AWK -F: 'NF> 2 {印刷} /等フィールド当たりのライン/ passwdの数が2印刷よりも大きいです
- 5行目 'NR == 5 {印刷}' / etc / passwdファイル/ etc / passwdファイルをプリントアウト:awkの-F
- awkの-F: 'NRは== 5 | NR == 6 {印刷}' / etc / passwdファイルは/ etcライン5とライン6 / passwdファイルをプリントアウト
- awkの-F: '!NR = 1 {printは}' / etc / passwdファイルは、最初の行が表示されません
- AWK -F: '{印刷> "1.TXT"}' / etc / passwdファイル出力します
- AWK -F: '{印刷}' / etc / passwdファイル> 2.txt出力ファイルのリダイレクトに
文字の一致
- AWK -F: '/ルート/ {印刷}' / etc / passwdファイルのプリントアウトルートに含まれる行
- awkの-F:OK '/' $ A '/ {印刷}' / etc / passwdファイルには、変数$ Aをプリントアウト含まれています
- awkの-F: '!/ルート/ {印刷}' / etc / passwdファイルをプリントアウト行がルートを持っていません
- awkの-F:「/ルート|トム/ {印刷}」/ etc / passwdファイルのプリントアウトルートやタムに含まれる行
- AWK -F: '/メール/は、MySQL / {印刷}メール*のMySQLを含むファイル内の行アウトテストプリント、*はゼロ又は任意の数の文字を表します。
- AWK -F: '/ ^ [2] [7] [7] * / {印刷}テストライン27の先頭に印刷出力ファイルを、等27,277,27gffとして
- awkの-F: '〜/ルート/ {印刷} $ 1' フィールドの最初の行をプリントアウトするには、/ etc / passwdファイルはrootです
- AWK -F '($ 1 == 『ルート』){印刷}フィールドの最初のラインを印刷するには、/ etc / passwdファイルは、上記に相当するルートであります
- awkの-F:「!〜/ルート/ {印刷} $ 1」/ etc / passwdファイルのフィールドの最初の行をプリントアウトするためには、ルートではありません
- awkの-F:「($ 1 = 『ルート』!){印刷}」フィールドの最初の行をプリントアウトするには、/ etc / passwdファイルは、上記に相当するルートではありません
- awkの-F: '$ 1〜/ルート| FTP / {印刷}' / etc / passwdファイルのプリントアウトルートまたは最初のフィールドラインのftp
- AWK -F '($ 1 == "ルート" || $ 1 == "FTP"){プリント}' は、上記と同等の/ etc / passwdファイルのプリントアウト最初のフィールドまたはFTPルートラインを、
- awkの-F:|フィールドの最初のラインをプリントアウトする '!$ 1~ /ルートのftp / {印刷}' / etc / passwdファイルは、rootまたはないftpのではありません
- AWK -F '(!! $ 1 = 『ルート』 || $ 1 = 『FTP』){印刷}フィールドの最初のラインを印刷するには、/ etc / passwdファイルは、FTP、上記と同等のルートではありませんか
- awkの-F:/ etc / passwdファイルの最初のフィールドは、メールの場合は、最初のフィールドを印刷、または印刷し、第2フィールド '{($ 1〜/メール/){他} $ 1印刷するには、{$ 2}印刷する場合}'
書式付き出力
AWK '{printfの "%-5S%.2d"、$ 1、$ 2}' 試験
- printfの出力形式表現
- %フォーマットされた出力デリミタ
- -8 8文字の長さであります
- sは文字列型を表し、Dは小数点を表します
例えば:
1、ディスプレイの/ etc / passwdのルートラインに含ま AWK ' /ルート/ ' の/ etc / passwdの 2、全分離表示の/ etc / 各ラインの最初と7番目のフィールドでのpasswd AWKの -F " :" ' {印刷$ 1、$ 7} ' / etc / passwdファイルまたはAWK ' {FSの=をBEGIN": "} {印刷$ 1、$ 7。} 」の/ etc / passwdの 3に:分離し、ディスプレイの/ etc / passwdを含むルート7つのフィールドの1行目と2行目は、 awkは -F " :" ' /ルート/ {印刷$ 1、$} 7。'の/ etc / passwdの 4。 、順番に:別居、ディスプレイの/ etc / 1とルートのpasswdフィールドラインの先頭に7 AWK -F" :" ' / ^ルート/ {印刷$ 1、$ 7} 'の/ etc / passwdの 5。、順番に:分離、ディスプレイの/ etc / 3番目のフィールド内のpasswdは、行の第一及び第七列より大きい999である AWK -F " :" ' $ 3>の999 {$、$ 1印刷7。} ' の/ etc / passwdの 6。 、全分離し、ディスプレイの/ etc / passwdの7番目のフィールドにおける1番目と7番目のフィールドは、bashの行含ま AWKを -F " :" '$ 7〜 "bashの" {$、$ 1を印刷7。} 'の/ etc / passwdの 7。 、順番に:分離し、ディスプレイの/ etc / 1及び図7に示すように、7番目のフィールド内のpasswdはbashの行が含まれていませんフィールド のawk -F " :" "!。$ 7〜 "nologinに" {$ 1印刷、$ 7} " の/ etc / passwdの 8。 、へ:別居表示$ 3 > 999、及び7番目のフィールドは、行の最初と第七列のbashが含まれている のawk -Fに」:" ' $ 3>の999 && $ 7〜" bashの"{$ 1印刷、$ 7。} 」の/ etc / passwdの 9。 、順番に:分離表示$ 3 > 999又は第7フィールドはbashの行1と7を含んでいますフィールド のawk -F " :" ' $ || $〜7 "bashの" 1 {印刷$、$} 7 3> 999。。。。' / etc / passwdファイル