入力する:
注:2つの列はタブで区切られ、通常のスペースは列2の単語を区切ります。
1 the mouse is dead
2 hit the wall
3 winter lasts forever
希望の出力:
1 the
1 mouse
1 is
1 dead
2 hit
2 the
2 wall
3 winter
3 lasts
3 forever
awk
この道は行く道ですか?
ベストアンサー1
最初のフィールドは行のフィールド数を保持し、where変数を使用してフィールドにアクセスでき、$1
ループはCとほぼ同じように機能します。だから:NF
$i
i
$ awk '{for (i = 2; i <= NF; i++) printf "%s\t%s\n", $1, $i} ' < blah
1 the
1 mouse
...
(フィールド区切り文字でスペースとタブを区別しません。)