Разбор текстового файла с помощью Awk - PullRequest
0 голосов
/ 17 мая 2018

Я хотел бы проанализировать текстовый файл, который имеет интересующий раздел, следующим образом:

mesh 0 400 12000
400 300 400
1 0 -1
300 500 600
0 0 1
etc....
12000
1300
1100
etc..

Мне бы хотелось, чтобы только строки, которые следовали сразу за строкой, начинающейся со строки mesh, и все остальныеодин после этого, и имеет 3 столбца.Я хотел бы, чтобы этот вывод был в отдельном текстовом файле с измененным именем.

Итак, желаемый выходной текстовый файл:

400 300 400
300 500 600

Я пытался сделать это с помощью Python и циклов, но буквальноЭто заняло несколько часов и никогда не заканчивалось, поскольку в исходном текстовом файле есть тысячи или сотни тысяч строк.

Есть ли более эффективный способ сделать это с помощью bash-скрипта с использованием awk?

1 Ответ

0 голосов
/ 17 мая 2018

awk на помощь!

$ awk '/^mesh/{n=NR;next} NF==3 && n && NR%2==(n+1)%2' file > filtered_file
400 300 400
300 500 600
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...