Определите дублирующиеся блоки текста в файле

Можно сделать это через файл /etc/fstab. Смотрите на эту ссылку. Это учебное руководство также имеет хорошие детали.

Шаги в качестве примера

Сначала необходимо узнать UUID жестких дисков. Можно использовать команду blkid для этого. Например:

% sudo blkid
/dev/sda1: TYPE="ntfs" UUID="A0F0582EF0580CC2"
/dev/sda2: UUID="8c2da865-13f4-47a2-9c92-2f31738469e8" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda3: TYPE="swap" UUID="5641913f-9bcc-4d8a-8bcb-ddfc3159e70f"
/dev/sda5: UUID="FAB008D6B0089AF1" TYPE="ntfs"
/dev/sdb1: UUID="32c61b65-f2f8-4041-a5d5-3d5ef4182723" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb2: UUID="41c22818-fbad-4da6-8196-c816df0b7aa8" SEC_TYPE="ext2" TYPE="ext3" 

Вывод от blkid команда выше может использоваться для идентификации жесткого диска при добавлении записей в /etc/fstab.

Затем необходимо отредактировать /etc/fstab файл. Строки в этом файле организованы следующим образом:

UUID={YOUR-UID}    {/path/to/mount/point}               {file-system-type}    defaults,errors=remount-ro 0       1

Теперь отредактируйте файл:

% sudo vi /etc/fstab

И добавьте файл как это, например:

UUID=41c22818-fbad-4da6-8196-c816df0b7aa8  /disk2p2      ext3    defaults,errors=remount-ro 0       1

Сохраните файл и затем повторно обработайте файл с mount -a команда.

Разделы Windows

Для монтирования ntfs раздела, необходимо будет выполнить в чем-то вроде этого Ваш /etc/fstab файл:

/dev/sda2   /mnt/excess ntfs-3g    permissions,locale=en_US.utf8    0   2

9
01.10.2014, 05:48
1 ответ

Если использование линии сравнения является приемлемой, то следующее будет скажет, какие строки дублируются в файле Text и сколько раз каждая каждая:

sort text | uniq -c | grep -vE '^\s*1 '

В качестве примера

$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
      3 alpha
      2 beta

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

Найти повторяющиеся абзацы

. Предположим, что наш файл Text содержит:

This is a paragraph.

This is another
paragraph

This is
a paragraph.

Last sentence.

Следующая команда идентифицирует показывает, какие абзацы появляются более одного раза:

$ awk -v RS=""  '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
      2 This is a paragraph.

Это использует awk Разбивайте текст в абзацы (разграниченные пустыми строками), преобразуют новые линии в пробелы, а затем передают выходные данные, одну строку на параграф, для сортировки и UNIQ для подсчета дублированных абзацев.

Вышеуказанное было проверено WTIH GNU awk . Для других AWK Способ определения пустых строк в качестве пункта (записи) границ может отличаться.

13
27.01.2020, 20:06

Теги

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