-1

質問は次のとおりです。

awk を使用して、数量と製品名のみを示すファイル内のすべての行をこの順序で表示します。製品名は最初のフィールドで、数量は 2 番目のフィールドです。データファイルは「在庫」

インベントリする内容:

Strawberry Jam,300,4

Raspberry Jam,1216,7

Blueberry Jam,96,195

Strawberry Compote,49,621

Raspberry Compote,1937,624

Blueberry Compote,200,625

Frozen Strawberries,130,1941

Straw Hats,16,2047

私のコマンドは

awk '$2 $1' inventory

それは正しく動作するはずですか?私も試してみました

awk '{print $2 $1}' inventory
awk '$2, $1' inventory

そのバリエーションはたくさんありますが、どれもうまくいきません!誰でも理由を理解するのを助けることができますか?

4

2 に答える 2

1

これはcsv (カンマ区切り値)ファイルであるため、オプションを使用してfield separator指定する必要があります。,-F

$ awk -F, '{print $2,$1}' inventory

300 Strawberry Jam
1216 Raspberry Jam
96 Blueberry Jam
49 Strawberry Compote
1937 Raspberry Compote
200 Blueberry Compote
130 Frozen Strawberries
16 Straw Hats
于 2012-11-26T22:13:07.853 に答える
0

どうぞ:

awk 'BEGIN{FS=OFS=","} {print $2, $1}' inventory
于 2012-11-26T22:14:23.117 に答える