-3

質問は次のとおりです。

awk を使用して、在庫の項目が 100 未満のファイル内のすべての行を表示します。数量は 2 番目のフィールドです。

私は試した

 awk '$2 < 100' inventory

しかし、それは 2 番目のフィールドに 100 未満の行のみを表示します。これはすべての行を表示するように求めています。それを表示する方法がわかりません。誰か助けてもらえますか?


いちごジャム,300,4

ラズベリージャム、1216,7

ブルーベリージャム、96,195

いちごのコンポート、49,621

ラズベリーのコンポート、1937,624

ブルーベリーコンポート、200,625

冷凍イチゴ、130、1941

麦わら帽子,16,2047

^ 在庫ファイルの内容

4

3 に答える 3

0

これはそれを行う必要があります:

awk 'BEGIN{FS=OFS=","} $2 < 100 {print}' inventory

説明: :

  • awk: awk コマンドを呼び出す
  • BEGIN{FS=OFS=","}'他の質問,からの入力ファイルの形式をまだ覚えているため、入力と出力の両方の区切り記号として使用します
  • $2 < 100 {print}: 条件$2 < 100が真のときはいつでも、行全体を出力します。
  • inventory: 入力ファイルの名前。

入力:

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

出力:

Blueberry Jam,96,195
Strawberry Compote,49,621
Straw Hats,16,2047
于 2012-11-26T22:29:21.887 に答える
0
awk -F, '$2<100' file

テスト

kent$  cat test
Raspberry Jam,1216,7
Blueberry Jam,96,195
Strawberry Compote,49,621
Raspberry Compote,1937,624
Blueberry Compote,200,625
Frozen Strawberries,130,1941

kent$  awk -F, '$2<100' test
Blueberry Jam,96,195
Strawberry Compote,49,621
于 2012-11-26T22:39:34.550 に答える
0

すべての行を印刷したい場合は、次のようにしますawk

awk '{print $0}'

2 番目のフィールドが 100 文字未満の行を印刷する場合:

$ cat inventory

1,2,3
1,12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,0

このような:

`awk -F, '$2 < 100 {print $0}' inventory`

1,2,3

行を印刷する場合、行は 2 番目のフィールドの値に基づいています。


$ awk -F, '$2<100' file

Blueberry Jam,96,195
Strawberry Compote,49,621
Straw Hats,16,2047

$ awk -F, '$2>100' file

Strawberry Jam,300,4
Raspberry Jam,1216,7
Raspberry Compote,1937,624
Blueberry Compote,200,625
Frozen Strawberries,130,1941
于 2012-11-26T22:32:38.257 に答える