cut, awkコマンドで区切り文字を指定して取り出す

2021-07-07

区切り文字を指定して特定の値を取り出す

cutコマンド、awkコマンドを利用して、任意の区切り文字で区切られた文字を取り出す方法を紹介します。
以下のファイルでは、「:」で区切りを入れてIPアドレス:ポート番号を記載されています。このファイルでIPアドレスを取得する方法を例文として紹介していきます

$ cat test.log 
192.168.0.1:80
192.168.0.11:80
192.168.0.31:80
192.168.0.15:80
192.168.0.12:80
192.168.0.11:80
192.168.0.31:80
192.168.0.71:80
192.168.0.1:443
192.168.0.11:443
192.168.0.31:443
192.168.0.15:443
192.168.0.12:8080
192.168.0.11:8080
192.168.0.31:8080
192.168.0.71:8080

 

cutコマンドで、区切り文字を指定して特定の値を取り出す

cutコマンドで区切り文字を指定してデータを取り出すのには、「-f」、「-d」のオプションを使います。

書式:cut -f 【 表示するフォールド値】-f “【区切り文字】" 【ファイル名】

  • -f, –fields=LIST」は、LISTで指定されたフィールドのみを選択する
  • -d, –delimiter=DELIM」は、フィールドの区切り文字として TAB の代わりに DELIM を使用する。区切り文字を「""(ダブルクォーテーション)」で囲って指定するとその値を区切り文字として利用できます
$ cut -f 1 -d ":" test.log 
192.168.0.1
192.168.0.11
192.168.0.31
192.168.0.15
192.168.0.12
192.168.0.11
192.168.0.31
192.168.0.71
192.168.0.1
192.168.0.11
192.168.0.31
192.168.0.15
192.168.0.12
192.168.0.11

awkコマンドで、区切り文字を指定して特定の値を取り出す

awkコマンドで区切り文字を指定してデータを取り出すのには、「-F」の後に区切り文字を「""(ダブルクォーテーション)」で囲って指定するとその値を区切り文字として利用できます。

書式:cat 【ファイル名】 | awk -F “【区切り文字】" '{print 表示するフォールド値}’

$ cat test.log | awk -F ":" '{print $1}'
192.168.0.1
192.168.0.11
192.168.0.31
192.168.0.15
192.168.0.12
192.168.0.11
192.168.0.31
192.168.0.71
192.168.0.1
192.168.0.11

 

LinuxCentOS 6,CentOS 7

Posted by admin