удалить дублирующую информацию в файле .dat (awk, sed) - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть несколько больших файлов, к которым случайно добавлена ​​правильная информация (т. Е. Самые последние данные с заголовком верны, а верхняя информация неверна), поэтому есть дубликат информации:

H1 H2 H3 DATA SHIFT PROD VAL
12 12 13 8189 2 392 10
12 13 12 8199 3 281 11
...
...
H1 H2 H3 DATA SHIFT PROD VAL
12 12 13 8189 2 392 10
12 13 12 8199 3 281 15
...
...

Если я хочу удалить только заголовок и информацию, относящуюся к первому заголовку, как мне поступить?Я могу только заставить sed работать с соответствующими 1 или 2 символами, и это удаляет все после, а не до.

Ожидаемый результат должен быть просто:

H1 H2 H3 DATA SHIFT PROD VAL
12 12 13 8189 2 392 10
12 13 12 8199 3 281 15
...
...

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Попробуйте это решение Perl

$ perl -ne ' $x=$_ if $.==1; $y++ if $.>1 and $x eq $_; print if $y ' simpson.txt
H1 H2 H3 DATA SHIFT PROD VAL
12 12 13 8189 2 392 10
12 13 12 8199 3 281 15
...
...

$
0 голосов
/ 05 декабря 2018

awk на помощь!

$ awk 'NR==1{h=$0; next} $0==h{p++} p' file

H1 H2 H3 DATA SHIFT PROD VAL
12 12 13 8189 2 392 10
12 13 12 8199 3 281 15
...
...

заголовок записи, начните печать после повторного просмотра заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...