2010-11-11 1 views
2

У меня есть куча текстовых файлов со следующим содержимым в столбцах 1 и столбце2 (разделенных пробелом):Нужна быстрая помощь с использованием AWK/sort/uniq для удаления строк, имеющих одинаковые значения в первом столбце из простого текстового файла

address0 data0

address1 data1

.

.

.

addressN DataN

Все значения данных являются уникальными (случайным образом), но некоторые значения адресов повторяются. Как использовать AWK/sort/uniq для удаления строк с уже указанными адресами?

В принципе, не должно быть дубликатов адресов в текстовом файле, независимо от того, что связано с данными.

ответ

0

sort -k1 your_file | awk '{ if ($1 != last_address_seen) {print $0; last_address_seen=$1}}'

+0

он заканчивает вывод 0 линий. :-( – Arjun

+0

Это действительно сработало, когда я использовал gawk. Я думаю, что это была проблема с cygwin. Спасибо, куча! – Arjun

1
awk ' 
    $1 in seen {next} 
    {print; seen[$1] = 1} 
' file ... 
+0

Преимущество этого заключается в сохранении исходного порядка строк в файле. –

0
sort -k1 -u your_file > outputfile 

команды Большинство UNIX сортировки будет поддерживать опцию -u, которая будет держать только первый из двух линий, которые сравнивают равные по всем клавишам.

Смежные вопросы