cut, awkコマンドで区切り文字を指定して取り出す
区切り文字を指定して特定の値を取り出す
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
ディスカッション
コメント一覧
まだ、コメントがありません