ネットワーク セキュリティ Day13 - Linux 三銃士 Awk Knowledge

Linux 三銃士は知識が浅い

1.awk の概要

  • awk は言語でありコマンドです。
  • Linux には grep/sed/awk という 3 つの銃士コマンドがあります。
  • 三銃士の特技
    • grep フィルターの内容
    • sedフェッチライン
    • awk フェッチ列

2.awk 構文

  • テイクカラム
    • ファイルの最初の列 ($1) を取得します。awk '{print $1}' 文件
    • ファイルの区切り文字を指定します:awk -F "指定的分隔符" '{print $1}' 文件
    • 複数の区切り文字を指定します。awk -F "[/@ #]+" '{print $1,$2}' 文件
  • 取行: awk NR==2 oldboy.txt
  • フィルター:awk '/过滤的内容/' 文件

3. 練習する

  • 準備: ファイルを作成し、それにコンテンツを追加します。

    [root@oldboyedu ~] echo "oldboy oldgirl" >>oldboy.txt
    [root@oldboyedu ~] echo "oldboy oldgirl" >>oldboy.txt
    [root@oldboyedu ~] cat oldboy.txt
    oldboy oldgirl
    oldboy oldgirl
    
  • 共通フェッチ

    • 最初の列を取る
      [root@oldboyedu ~] awk '{print $1}' oldboy.txt 
      oldboy
      oldboy
      
    • 行全体を取得します (grep を使用した方がよい場合があります)
      [root@oldboyedu ~] awk '{print $0}' oldboy.txt 
      oldboy oldgirl
      oldboy oldgirl
      
  • 列を取得するための区切り文字を指定します (-F)

    • /etc/passwd の列 1 を取得します。awk -F ":" '{print $1}' /etc/passwd
    • /etc/passwd の列 2 を取得します。awk -F ":" '{print $2}' /etc/passwd
    • /etc/passwd の末尾の列を取得します。awk -F ":" '{print $NF}' /etc/passwd
    • /etc/passwd の最後から 2 番目の列を取得します。awk -F ":" '{print $(NF-1)}' /etc/passwd
  • 複数の列を同時に出力する

    • /etc/passwd の列 1 と列 2 を取得します。awk -F ":" '{print $1,$2}' /etc/passwd
    • /etc/passwd の 1 列目、3 列目、最後の列を取得します。awk -F ":" '{print $1,$3,$NF}' /etc/passwd
  • 複合トレーニング

    • ip a または ifconfig の結果から IP アドレスを取得するp a|grep '10.0.0'|awk '{print $2}'|awk -F/ '{print $1}'か、ifconfig eth0|grep '10.0.0'|awk '{print $2}'
    • ip a の結果から IP アドレスを抽出します。ip a|awk -F "[ /]+" 'NR==9{print $3}'
    • stat /etc/hosts の 0644 を取り出します。stat /etc/hosts|awk -F "[(/]" 'NR==4{print $2}'
  • 準備する

    [root@oldboyedu ~] seq 5 >oldboy.txt 
    [root@oldboyedu ~] cat oldboy.txt
    1
    2
    3
    4
    5
    
  • 漕ぎ練習

    • 2 行目を取り出します。awk NR==2 oldboy.txt
    • 2 ~ 4 行目を取る:awk NR==2,NR==4 oldboy.txtまたはawk 'NR>1&&NR<5' oldboy.txtawk 'NR>=2&&NR<=4' oldboy.txt

おすすめ

転載: blog.csdn.net/m0_73293867/article/details/132123666