Как объединить различные строки файлов?

Cronjob для очистки кеша: Как очистить кеш памяти в Linux

На самом деле у меня похожие проблемы. У меня есть группа пользователей, которые запускают свои собственные сценарии, и время от времени их сценарии потребляют всю доступную память и отключают сервер redhat. Причина массового потребления оперативной памяти заключалась в том, что их сценарии могли работать в течение нескольких дней, просто ожидая события, тем самым забирая ресурсы, когда на самом деле они их не используют. Я просто принудительно очистил кеш с помощью cronjob, и с тех пор у меня не было проблем.

Простой и ленивый.

4
01.09.2018, 18:52
3 ответа

Используйте awk seen, если вы не хотите сортировать файл:

$ awk '!seen[$0]++' a.txt b.txt
foo  
bar
foobar
line
by
8
27.01.2020, 20:44

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

В этом случае cat, sortи uniqмогут сделать это за вас:

cat a.txt b.txt | sort | uniq > c.txt

catоткрывает содержимое обоих файлов

sortсортирует вывод в алфавитном порядке

uniqперечисляет только уникальные строки

> c.txtпомещает весь вывод в новый файлc.txt

5
27.01.2020, 20:44
$ sort -u a.txt b.txt
bar
by
foo
foobar
line

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

Чтобы записать результат в c.txt, используйте

sort -u -o c.txt a.txt b.txt

или стандартное перенаправление

sort -u a.txt b.txt >c.txt
10
27.01.2020, 20:44

Теги

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