出力パターン
出力パターン
AWKの使い方
AWKは次のように呼び出します。
awk コマンド (ファイル名)
![](https://kanda-it-school-kensyu.com/wp-content/uploads/5820cc96c5c155bf347b775e02fa8693.png)
1列だけを出力してみましょう
標準出力のwhoは次の通りです。
[user01@localhost ~]$ who user01 tty1 2020-06-09 14:22 user01 pts/0 2020-06-10 03:39
図
![](https://kanda-it-school-kensyu.com/wp-content/uploads/282b8ec7023fd2be8fdb519c859aa645.png)
whoにパイプ(|)を追加してawkを適用することができます。
ドル記号($)で列番号で指定します。
指定した列の内容をprint コマンドで出力します。
[user01@localhost ~]$ who | awk '{print $1}' user01 user01
図
![](https://kanda-it-school-kensyu.com/wp-content/uploads/9904f2003b473f6787b7782e0f18b8f1.png)
任意の列だけの出力ができます。
区切り文字としてコンマを追加すると、任意の例だけ出力されます。
次のように入力し、ユーザー名とログインした時刻を出力します。
[user01@localhost ~]$ who | awk '{print $1,$4}' user01 14:22 user01 03:39
図
![](https://kanda-it-school-kensyu.com/wp-content/uploads/88b4f871e54223e39575597f622042b3.png)
printにパターンを含めて、フィルターをかけます。
パス「/etc/passwd」内のユーザーID番号(3列)が1,000以上の行の1列と3列を出力します。
次のように入力すると、3番目のフィールド($3)に1,000以上の値が含まれている場合のみ、
印刷アクションを実行します。
[user01@localhost ~]$ awk -F: '$3 >= 1000 {print $1,$6}' /etc/passwd user01 /home/user01
図
![](https://kanda-it-school-kensyu.com/wp-content/uploads/6bf34548b853dfd3fce9aa7e98c2ca71.png)
パターンにキーワードを指定します。
マウントされたファイルシステムのUUIDが見たい場合は、/etc/fstab内の文字列「UUID」を検索すると、その情報が返されます。
[user01@localhost ~]$ awk '/UUID/ {print $0}' /etc/fstab UUID=18fbc688-ffa9-4c45-b0ce-7a7458781eb1 /boot xfs defaults 0 0
図
![](https://kanda-it-school-kensyu.com/wp-content/uploads/002cfcde9ed5bfa52c6c890dbdaf5fa0.png)
フィルターを修正して、「UUID」で始まる行のみを出力するように指示できます。
これを行うには、行頭トークン(^)を含め次のように入力します。
[user01@localhost ~]$ awk '/^UUID/ {print $0}' /etc/fstab UUID=18fbc688-ffa9-4c45-b0ce-7a7458781eb1 /boot xfs defaults 0 0
図
![](https://kanda-it-school-kensyu.com/wp-content/uploads/a9cbc1abdba8a5f01efdd0a641c83885.png)
print関数の列番号を「$1」に変更すると、1列だけを出力するよう制限することもできます。
user01@localhost ~]$ awk '/^UUID/ {print $1}' /etc/fstab UUID=18fbc688-ffa9-4c45-b0ce-7a7458781eb1
図
![](https://kanda-it-school-kensyu.com/wp-content/uploads/d4ac08c256a1e0269389313026e38a4a.png)