awk 区切り文字とフィールド

バイオインフォ道場、くまぞうです。

awkは、入力の各行を区切り文字でフィールドに分割して、それぞれを個別に取り出すことができます。

スポンサーリンク



awk 区切り文字の変更

入力行をフィールドに分割するのは区切り文字です。デフォルトは、スペースやタブです。変更するときは、-Fオプションに続けて、区切り文字を指定します。システム変数FS(入力)やOFS(出力)を使って指定することもできます。この場合、入力時の区切り文字と、出力時の区切り文字を個別に指定できます。

また、区切り文字を複数指定する場合、FS=”[, :]”という書式で登録します。

# 区切りは:(コロン, -F指定), 出力時の区切りはスペース(デフォルト)
$ echo "1:2:3" | awk -F: '{print $1,$3}'
1 3

# 区切りは:(コロン, FS指定), 出力時の区切りは-(ハイフン, OFS指定)
$ echo "1:2:3" | awk '{print $1,$3}' FS=: OFS=-
1-3

awk 任意のフィールドを取り出す

区切り文字で分割されたフィールドは、個別に取り出すことができます。1番目のレコードは$1、2番目のレコードは$2、・・・と、個別に取り出すことができます。全体は、$0で表現されます。

# 区切りは:(コロン), 出力時の区切りは-(ハイフン)
# 1番目・3番目を出力。
$ echo "1:2:3" | awk '{print $1,$3}' FS=: OFS=-
1-3

# 2番目のみ出力。
$ echo "1:2:3" | awk '{print $2}' FS=: OFS=-
2

# 全体出力(区切り文字も入力のまま)。
$ echo "1:2:3" | awk '{print $0}' FS=: OFS=-
1:2:3

# ファイルに処理を適用
# 区切りは:(コロン), 出力時の区切りは-(ハイフン)
# 1番目・3番目を出力。
$ cat awk2.txt
1:2:3
4:5:6

$ awk '{print $1,$3}' FS=: OFS=- awk2.txt
1-3
4-6

$ cat awk2.txt | awk '{print $1,$3}' FS=: OFS=-
1-3
4-6
スポンサーリンク




ランキング


おすすめ記事

ピックアップ記事

  1. tidyverse – distinct関数でデータフレームの重複行を削除 dplyrパッケージ

    tidyverseでデータフレームの重複行の削除を行う場合、dplyrパッケージのdistinct…
  2. R subset関数 データフレームやmatrixからの条件指定による行・列の抽出

    R の subset関数は、データフレームやマトリックスから条件にマッチした部分集合を取り出します…

人気記事

  1. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  2. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…
  3. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…

おすすめ記事

  1. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  2. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  3. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…