Как удалить дублирующиеся строки в файле, не сортируя его в Unix?

Два ограничения для знания об этом, с которым я столкнулся:

  1. Наследованные Объекты не могут иметь Свойств Навигации - т.е. если у Вас есть класс "человека" и затем "клиент" и "поставщик" те, у клиента и поставщиков cannont есть свойства Navigation.

  2. Методы и Вычисляемые поля (что-либо в частичных классах) не передаются по Услугам передачи данных ADO.NET - если Вы будете также использовать Услуги передачи данных ADO.NET что-нибудь, что Вы разворачиваете, то объекты Платформы Объекта на в частичных классах не будут переданы по Услугам передачи данных ADO.NET.

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

118
задан Márton Tamás 2 September 2019 в 17:47
поделиться

2 ответа

awk '!seen[$0]++' file.txt

seen - это ассоциативный массив, в который Awk будет передавать каждую строку файла. Если строки нет в массиве, то seen [$ 0] будет оцениваться как false. ! является логическим оператором НЕ и преобразует ложное в истинное. Awk напечатает строки, в которых выражение оценивается как истинное. ++ увеличивает видимый , так что видно [$ 0] == 1 после первого обнаружения строки, а затем видно [$ 0] = = 2 и т. Д.
Awk оценивает все, кроме 0 и "" (пустая строка) как истину. Если в seen помещена повторяющаяся строка, то ! Seen [$ 0] будет оцениваться как ложь, и строка не будет записана в вывод.

259
ответ дан 24 November 2019 в 01:55
поделиться

Из http://sed.sourceforge.net/sed1line.txt : (Пожалуйста, не спрашивайте меня, как это работает ;-))

 # delete duplicate, consecutive lines from a file (emulates "uniq").
 # First line in a set of duplicate lines is kept, rest are deleted.
 sed '$!N; /^\(.*\)\n\1$/!P; D'

 # delete duplicate, nonconsecutive lines from a file. Beware not to
 # overflow the buffer size of the hold space, or else use GNU sed.
 sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P'
29
ответ дан 24 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: