Skip to content

Instantly share code, notes, and snippets.

@nekonaq
Last active April 6, 2019 13:35
Show Gist options
  • Save nekonaq/dfeb835107a2b03efe79ca417c91aa9a to your computer and use it in GitHub Desktop.
Save nekonaq/dfeb835107a2b03efe79ca417c91aa9a to your computer and use it in GitHub Desktop.

awk で単一の空白文字をフィールド区切りとして扱う

次のようなデータがあるとする。

$ cat data
a a1 a2 a3
b b1  b3
c  c2 c3

awk は通常、連続した空白文字をフィールド区切りとみなす。

$ awk '{ print "h="$1, "1="$2, "2="$3, "3="$4 }' data
h=a 1=a1 2=a2 3=a3
h=b 1=b1 2=b3 3=
h=c 1=c2 2=c3 3=

フィールド区切りを空白文字に指定しても動作は変わらない。

$ awk -F' ' '{ print "h="$1, "1="$2, "2="$3, "3="$4 }' data

h=a 1=a1 2=a2 3=a3
h=b 1=b1 2=b3 3=
h=c 1=c2 2=c3 3=

フィールド区切りの次のように指定すればうまくいく。

$ awk -F'[ ]' '{ print "h="$1, "1="$2, "2="$3, "3="$4 }' data
h=a 1=a1 2=a2 3=a3
h=b 1=b1 2= 3=b3
h=c 1= 2=c2 3=c3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment