我有一个数据集如下:
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