Открыть URL-адрес с терминала в Chrome

Sed может справиться с этим довольно легко. Это единственная команда «подстановки» с префиксом диапазона адресов. Я добавил дополнительный интервал для лучшей читаемости:

sed -e '/^\[ABC\]$/ , /^\[.*\]$/     s/^\(value1=\).*$/\1notbla/'

Без дополнительного интервала это:

sed -e '/^\[ABC\]$/,/^\[.*\]$/s/^\(value1=\).*$/\1notbla/'

Вам действительно не нужны привязанные регулярные выражения, но они могут быть более безопасными в некоторых случаях необычного ввода. Немного более короткая версия с незакрепленными регулярными выражениями:

sed -e '/\[ABC\]/,/^\[/s/^\(value1=\).*$/\1notbla/'

Объяснение:

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

Первая часть строки - это диапазон адресов: / startregex /, / stopregex / Команда s ubstitute, которая следует за диапазоном адресов, применяется только к строкам из от startregex до stopregex (включительно).

В этом случае начальное регулярное выражение - / \ [ABC \] / . Квадратные скобки обычно являются специальными символами в регулярном выражении, поэтому мы ставим перед каждым символом обратную косую черту, чтобы обозначить буквальные символы квадратных скобок.

Регулярное выражение остановки - / ^ \ [/ , которое использует специальный символ регулярного выражения ^ для обозначения начала строки. Этот шаблон будет соответствовать любой строке, которая начинается с буквальной левой квадратной скобки ( [).

Команда s ubstitute в основном довольно проста; общий формат - s / findregex / replacetext / . Он также может иметь специальные флаги, помещенные после последнего / , чтобы изменить его поведение, но я здесь не использую никаких таких флагов.

«Найти регулярное выражение»: ^ \ (value1 = \). * $ .

Каретка ( ^ ) соответствует началу строки, как упоминалось ранее, а знак доллара ( $ ) соответствует концу строки. Таким образом, весь этот шаблон должен соответствовать всей строке, а не только ее части.

Скобки ( () ), в отличие от квадратных скобок, по умолчанию в регулярных выражениях являются не -специальными, поэтому мы помещаем перед ними обратную косую черту, чтобы придать им особое значение. Они позволяют использовать части совпадающего текста (текст, совпадающий с "регулярным выражением поиска") в заменяющем тексте. В частности, \ 1 в тексте замены означает: «Текст соответствует первому набору круглых скобок в регулярном выражении». В данном случае это всегда просто «значение1 =».

Последний элемент в «регулярном выражении поиска» - . * . Точка (. ) означает «любой отдельный символ», а звездочка ( * ) означает «любое количество раз (ноль или более)». Итак, точка-звезда (.* ) соответствует всей остальной части строки после знака равенства.

«notbla» в замещающем тексте - это просто статический текст, ничего особенного в этом нет.


Чтобы по-настоящему изучить Sed, я настоятельно рекомендую Grymoire Sed tutorial , который доступен бесплатно в Интернете.

2
30.12.2016, 15:27
2 ответа

Я не знаю, есть ли xdg-settings в elementary OS, но попробуйте следующее:

xdg-settings set default-web-browser google-chrome.desktop
3
27.01.2020, 21:56

Я получил решение.

Несмотря на то, что я сделал Chrome своим браузером по умолчанию в настройках Chrome, он не был изменен в системных настройках.

Так что я должен изменить

System Settings > Applications > Web Browser to chrome.
2
27.01.2020, 21:56

Теги

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