Безопасно ли удалять все разделы подкачки?

Также это можно сделать следующим методом:

$ sed -n "/^[0-9]\{0,4\}$\|10000/p" logfile

Пример

Скажем, у меня был файл-пример, лог-файл, вот так:

$ seq 9900 10050  | sed 's/$/ /' > logfile

В результате файл лог-файл выглядит следующим образом:

$ head -5 logfile 
9900
9901
9902
9903
9904

$ tail -5 logfile 
10046
10047
10048
10049
10050

После каждой из этих строк есть пространство для трейлинга, благодаря строке sed 's/$/ /' выше, когда мы создавали файл-пример.

Теперь, когда мы выполняем вышеприведенную команду sed:

$ sed -n "/^[0-9]\{1,4\}[^0-9]\|10000/p" logfile  | tail -5
9996 
9997 
9998 
9999 
10000 

Мы получаем все до 10000, и ничего больше.

Как это работает

Выше sed работает поиск строк, которые начинаются с диапазона цифр, 0-9, длиной от 1 до 4. Эту часть выполняет нотация на sed, "/^[0-9]\{1,4\}[^0-9]. В конце нотации [^0-9] написаны символы, которые не являются 0-9. Это останавливает sed от совпадения подстрок в числах, которые длиннее.

\|10000 совпадает с 10000, так как это немного уникальная закономерность по сравнению с остальными строками до нее. Трейлинг p говорит sed распечатать результаты.

Использование grep в качестве альтернативы

Использование sed на самом деле не является подходящим инструментом для поиска. Скорее всего, для этого лучше использовать grep.

$ grep "\b\([0-9]\{1,4\}\|10000\)\b" logfile | head -5
9900 
9901 
9902 
9903 
9904 

$ grep "\b\([0-9]\{1,4\}\|10000\)\b" logfile | tail -5
9996 
9997 
9998 
9999 
10000 

Выше приведены все строки, которые содержат строку из 10000 или ниже цифр. \b обозначает границу либо до, либо после строки.

.
1
13.04.2017, 15:36
1 ответ

Если вы удалите разделы подкачки, система не сможет их найти при следующей загрузке. Это нефатальная ошибка, но вам лучше также закомментировать (или удалить) соответствующие строки подкачки в / etc / fstab .

2
27.01.2020, 23:36

Теги

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