Как установить Kali Linux с grub?

В elementary OS 3.2 Freya (на основе Ubuntu 14.04) выполните:

  1. Включите Multiverse (если он еще не включен)
  2. sudo apt-get install pepperflashplugin-nonfree
  3. Перезапустите Chromium

0
12.06.2019, 09:29
1 ответ

sedобычно обрабатывает файл по одной строке за раз, но если вы добавляете новые строки (или используете определенные sedкоманды, которые считывают/добавляют содержимое в «пространство шаблона» ), он может содержать несколько строк в в то же время. В частности, когда ваш скрипт sedобрабатывает строку "bb", он сначала заменяет ее на "\nff" (, где \nпредставляет фактическую новую строку ), а затем сравнивает все пространство шаблонов с регулярное выражение ^$обнаруживает, что оно не соответствует, и игнорирует эту команду. (Примечание :в этом контексте, ^и $не относятся к началу и концу строки, а относятся к началу и концу пространства шаблонов ).

Решение :Если я правильно понимаю вашу цель,второй тест должен проверять пространство шаблонов, начинающееся с новой строки (^\n), и если да, то удалять новую строку (, а не все пространство шаблонов ). Вы можете сделать это с помощью замены s/^\n//.

По сути, это добавит разрыв строки, если шаблон «bb» был в начале строки, но не если он находится позже в строке:

$ printf '%s\n' aa bb cc dd prefixbbsuffix | sed 's/bb/\nff/g;s/^\n//'
aa
ff
cc
dd
prefix
ffsuffix

В качестве альтернативы вы можете запустить две отдельные команды sed, так что вторая -удаляет строки, рассматривая добавленную строку как отдельный элемент:

printf '%s\n' aa bb cc dd prefixbbsuffix | sed 's/bb/\nff/g' | sed '/^$/d'
aa
ff
cc
dd
prefix
ffsuffix

Если это не является вашей реальной целью, измените свой вопрос, чтобы уточнить его.

0
28.01.2020, 03:35

Теги

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