нужен скрипт помощи

Файлы по вашему вопросу отсортированы.
Если исходные файлы действительно отсортированы, вы можете уникировать и объединить их за один шаг :

.
sort -um file1 file2 > mylist.merge

Для числовой сортировки (, а не буквенно-цифровой ), используйте:

sort -num file1 file2 > mylist.merge

Это могло не быть сделано в -месте (, перенаправленном на один исходный файл ).

Если файлы не отсортированы, отсортируйте их (эту сортировку можно выполнить на месте, используя опцию сортировки -o. Однако весь файл должен быть загружен в память ):

.
sort -uo file1 file1
sort -uo file2 file2
sort -um file1 file2 > mylist.merge
mv mylist.merge originallist

Это было бы быстрее, чем более простая «одна командная строка» для сортировки всех:

cat file1 file2 | sort -u >mylist.merge

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

-10
18.10.2019, 15:56
2 ответа

Предполагая, что /path/to/input-fileсодержит список, который вы упомянули в своем посте,мы могли бы использовать:

awk 'BEG{name="";count=0}{if ($0 == "") { print name "=" count; name = ""; count=0; } else { if (name == "") { name = $0; } else {count = count + 1} }}END{print name "=" count;}' /path/to/input-file
Alya Grant=2
Ava=3
Samia=4
0
28.01.2020, 05:21

В awk используйте последовательность пустых строк в качестве разделителя записей и новой строки в качестве разделителя полей . Тогда на выходе будет только первое поле и количество полей минус 1.

awk '
    BEGIN {FS = "\n"; RS = ""; OFS = "="}
    { print $1, NF - 1 }
' file1.txt
0
28.01.2020, 05:21

Теги

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