awkを使用するサブセット行

awkを使用するサブセット行

次のデータセットがあります。

Cow_ID  Age DIM
1   1424    0
1   1425    1
1   1426    2
1   1427    3
2   1428    4
2   1429    5
2   1430    6
2   1431    7
3   1432    8
3   1433    9
3   1434    10
3   1435    11
3   1436    12
4   1437    13
4   1438    14
4   1439    15

私はawkを使用してCow_IDに基づいてこのデータのサブセットを作成し、それをファイルに書きたいと思います。特に、各ファイルには、大規模なデータセットに示されているようにヘッダも含まれています。今これを使っていますが、うまくいきません。

awk 'Cow_ID=1 {print}' > data1.txt

私が望むサンプル出力は次のとおりです。

データ1:

Cow_ID  Age DIM
1   1424    0
1   1425    1
1   1426    2
1   1427    3

データ2:

Cow_ID  Age DIM
2   1428    4
2   1429    5
2   1430    6
2   1431    7

など。

ベストアンサー1

これはあなたの要件を満たすようです。 NR(レコード番号)が1の行を表示します。これは、ヘッダー行と最初のフィールドが「1」のすべての行を合計したものです。

awk 'NR == 1 || $1 == "1"' file.txt
Cow_ID  Age DIM
1   1424    0
1   1425    1
1   1426    2
1   1427    3
awk 'NR == 1 || $1 == "2"' file.txt
Cow_ID  Age DIM
2   1428    4
2   1429    5
2   1430    6
2   1431    7

おすすめ記事