Используйте GREP для замены текста

Есть недостатки использования ZFS с реализацией OpenZFS на момент написания, кроме загрузки, другой отсутствует шифрование. eCryptfs работает на ZFS, как и везде, и рекомендуется для LUKS, но имеет такие недостатки, как уменьшение максимальной длины имени файла при использовании с шифрованием имени файла. У конкурента bbfs ZFS также отсутствует шифрование в его наборе функций, и шифрование EXT4 было не очень удобным для пользователей в последний раз, когда я проверял. Напоминаем, что если вы ищете файловую систему с оптимизированной флэш-памятью, есть F2FS, и Arch Wiki заявляет, что ее можно установить в корне F2FS, если у вас есть отдельный загрузочный раздел (или хранить ядра и модули GRUB на EFI системный раздел), установщик Ubuntu его не поддерживает, поэтому вам нужно обходное решение: установка Ubuntu 14.04 на раздел F2FS

(Да, я считаю использование шифрования и использование длинных имен файлов в обычном режиме. )

0
задан 28 January 2018 в 08:44

4 ответа

Согласование нескольких строк можно довольно легко сделать с помощью Perl.

perl -p0e 's# in .*</div># walked down the path.#sm'

Короче говоря,

-p0e превращает Perl в sed -подобную поточную многострочную линию процессор. Часть s#...#...# означает, что вы хотите заменить все символы с in на </div> (первое предложение) на walked down the path (второе предложение). sm примерно означает «рассматривать символы новой строки как все остальные символы.

В этом ответе предполагается, что входной текст имеет только один такой шаблон.

Соответствующие страницы документации можно найти здесь и здесь на официальном сайте Perl.

3
ответ дан 17 July 2018 в 22:04

Использовать grep для замены текста? Удачи вам в этом.

sed сделает это за вас:

sed 's/in the hat/walked down the path/;/The cat/,/<\/div>/ {/The cat/n;d}' file

Примечания

s/old/new/ заменить old на new ; отделяет команды /begin/,/end/, работающие в диапазоне от линии с /begin/ до строки с группировкой /end/ {}, для команд, которые будут использоваться в диапазоне /The cat/n, исключить строку с помощью /The cat/ (do ничего и прочитать следующую строку) d удалить (остальные строки в диапазоне)
2
ответ дан 17 July 2018 в 22:04

Согласование нескольких строк можно довольно легко сделать с помощью Perl.

perl -p0e 's# in .*</div># walked down the path.#sm'

Короче говоря,

-p0e превращает Perl в sed -подобную поточную многострочную линию процессор. Часть s#...#...# означает, что вы хотите заменить все символы с in на </div> (первое предложение) на walked down the path (второе предложение). sm примерно означает «рассматривать символы новой строки как все остальные символы.

В этом ответе предполагается, что входной текст имеет только один такой шаблон.

Соответствующие страницы документации можно найти здесь и здесь на официальном сайте Perl.

3
ответ дан 23 July 2018 в 22:41

Использовать grep для замены текста? Удачи вам в этом.

sed сделает это за вас:

sed 's/in the hat/walked down the path/;/The cat/,/<\/div>/ {/The cat/n;d}' file

Примечания

s/old/new/ заменить old на new ; отделяет команды /begin/,/end/, работающие в диапазоне от линии с /begin/ до строки с группировкой /end/ {}, для команд, которые будут использоваться в диапазоне /The cat/n, исключить строку с помощью /The cat/ (do ничего и прочитать следующую строку) d удалить (остальные строки в диапазоне)
2
ответ дан 23 July 2018 в 22:41

Другие вопросы по тегам:

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