Я пытаюсь отфильтровать файл по столбцу index
и убедиться, что у меня остались некоторые цифры. Столбец index
обычно имеет любое число от 0 to 10
в исходном файле (file1.txt
).
Файл примера (с черточками внутри, разделяющими каждый чанк):
file1.txt
index age_1 age_2
0 44 34
1 10 12
1 34 44
2 1 -3
3 4 -10.3
3 3.390 4
4 43 3
--
1 -90.3 2
2 32 3
3 43 -20
4 2 2
--
0 34 34
2 21 12
4 -0.9 12
--
4 -2.19 34
4 4 4
5 5 -1
6 4 12
--
3 -12 3
Я пытаюсь отфильтровать каждый чанк между тире отдельно и сохранить чанки с диапазоном в столбце index
от 1 to 4
, где каждый элемент (1,2,3,4)
хотя бы один раз присутствует. Таким образом, ожидаемый результат будет выглядеть так:
index age_1 age_2
1 10 12
1 34 44
2 1 -3
3 4 -10.3
3 3.390 4
4 43 3
--
1 -90.3 2
2 32 3
3 43 -20
4 2 2
Моя текущая пробная версия просто может проверить диапазон в столбце index
, но я не могу указать обязательную фильтрацию:
cat file1.txt | awk -v OFS="\t" '$1=$1' | tail -n +2 | awk '$1>=1 && $1<=4'
1 10 12
1 34 44
2 1 -3
3 4 -10.3
3 3.390 4
4 43 3
1 -90.3 2
2 32 3
3 43 -20
4 2 2
2 21 12
4 -0.9 12
4 -2.19 34
4 4 4
3 -12 3
Я теряю фрагменты, и весь вывод смешивается без указания c фильтрации. Он может просто напечатать любое число в диапазоне от 1 до 4.
Как можно ввести строгую фильтрацию для чисел, присутствующих в столбце Speci c, сохраняя каждый блок отдельно?