Intereting Posts
Цвета для строки меню и полосы прокрутки на emacs 24 Мониторинг, если работающий сеанс X неактивен некоторое время Как заключить в кавычки, если как одиночные, так и двойные кавычки уже используются? Почему мой ключ Compose не передается Synergy? Как убить все процессы пользователя, используя их UID Как использовать преобразование ImageMagick для масштабирования изображения, добавляя почтовый ящик для получения результата с фиксированным размером? перезапустить X11 / Xwindows без отключения сеанса ssh Как безопасно рандомизировать порядок символов в строке? Проблемы с производительностью ZFS (по Linux) Как подсчитать, сколько разных слов у меня есть в файле, в столбце Слияние файлов flv приводит к увеличению размера массива задать переменные параметры с помощью точки Как добавить дефисы в первую пустую строку текстового файла? SSH-сессия через OpenVPN отключается / блокируется после нескольких строк Обратный инжиниринг прошивки IP-камеры, чтобы найти пароль администратора

Укажите строки в awk?

Я собираюсь использовать этот awk-скрипт для удаления повторяющихся строк из моего текстового файла:

awk '!x[$0]++' 

Однако я хочу указать, какие строки они должны запускать.

Может быть 10000 дубликатов, но я бы хотел только удалить дубликаты из строк 10020 в 10030.

В моем случае это от 24 до 655. Было бы проще, если бы это были слова, где я мог бы {$24, $655} (или что-то подобное). Но я не уверен, как указать строки в этом случае. Если это важно, я использую awk-версию 20070501.

Вы могли бы сделать что-то вроде этого:

 awk -v low=24 -v high=655 'NR >= low && NR <= high{if (!a[$0]++) print; next};{print}' file 

или еще лучше

  awk -v low=100 -v high=200 'NR < low || NR > high || !a[$0]++' test.file