Корректировка приоритета обратного упорядочения / регулярных выражений

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

sudo cp -r ~/.config/google-chrome{,-fresh}/
sudu chown -R root: ~/.config/google-chrome-fresh/
sudo chmod -R o-w  ~/.config/google-chrome-fresh/

И тогда у вас есть скрипт в ~/bin/google-chrome (или, возможно, где-то выше для безопасности)

#!/bin/bash

rm -rf ~/.config/google-chrome/
cp -r ~/.config/google-chrome{-fresh,}/
google-chrome "$@"

И для этого потребуется chmodding + x

Преимущество перебора профиля времени выполнения - люди делают глупые вещи, когда они используют компьютеры. Вы не хотите, чтобы их установленные pluggins взаимодействовали со следующими пользователями. Рассмотрите угрозу кейлоггеров и т. Д.

Подумайте об этом, вероятно, вы должны использовать новую гостевую учетную запись каждый раз, когда пользователь приходит и сбрасывает всех пользователей на каждое изменение. Вам нужно будет вырезать lightdm из уравнения, но вы можете сделать что-то вручную довольно легко с помощью nodm, а затем получите дополнительное преимущество: не нужно загружать весь рабочий стол только для киоска на компьютер.

1
задан 7 April 2015 в 20:24

2 ответа

Чтобы получить то, что вы хотите, попробуйте это:

sed -r 's/^([^.]*)\.(.*)/\1\n\2/'

Тест:

$ echo "string.with.dots" | sed -r 's/^([^.]*)\.(.*)/\1\n\2/'
string
with.dots

sed будет соответствовать жадности, поэтому, пока вы используете sed 's/\(.*\)\.\(.*\)/\1\n\2/', он будет жадно сочетаются с последним . в качестве первой захваченной группы, а затем остальные после . как второй.

В моем sed выражении, чтобы sed перестать быть жадным, у меня есть для поиска некоторых альтернатив. Я с самого начала сопоставил с . в качестве первой группы ([^.]*), а затем независимо от первого совпадения как второго.

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

$ echo "string.with.dots" | sed -r 's/^([^.]*)\.([^.]*)\.(.*)/\1\n\2\n\3/'
string
with
dots
3
ответ дан 23 May 2018 в 21:40
  • 1
    Спасибо, рекомендуется, потому что это хороший ответ, но вопрос в том, как изменить порядок сопоставления шаблонов, потому что в случае более сложного шаблона я должен исключить все «разделение», образец из первой группы захвата, я думаю, что это нормально для ., но я думаю, что было бы немного глупо для более сложных моделей, я думаю, что может быть лучшее решение. – kos 6 April 2015 в 23:55
  • 2
    @kos: sed всегда будет вести себя жадно и нет ничего похожего на обратное совпадение в sed AFAIK .. это было бы лучше, если бы вы представили пример сложных шаблонов и ожидаемых результатов. – heemayl 7 April 2015 в 00:01
  • 3
    Да, я нашел этот , который также утверждает то же самое, и one верхних ответов также предлагает исключить «разделение», шаблон один или несколько раз, проблема возникает, когда вы не знаете, сколько случаев "разделения" образец, с которым вы столкнетесь, что, в общем, очень часто встречается в регулярных выражениях – kos 7 April 2015 в 00:12
  • 4
    @kos: На самом деле у вас не может быть общего шаблона в sed или регулярном выражении, поскольку то, что может показаться простым способом решить в одном примере, может быть не в другом, может быть несколько более простой способ, основанный на шаблоне. зависит от шаблона, который вы хотите совместить. – heemayl 7 April 2015 в 00:17
  • 5
    Показанная техника - лучший способ получить нежелательное поведение с помощью инструмента без не жадных квантификаторов. – glenn jackman 7 April 2015 в 00:28

Интересно, можете ли вы избежать использования расширения параметра bash

$ s="string.with.dots"
$ echo "${s%%.*}"; echo "${s#*.}"
string
with.dots
$ echo "${s%.*}"; echo "${s##*.}"
string.with
dots
1
ответ дан 23 May 2018 в 21:40
  • 1
    Если это может соответствовать любому шаблону, возможно, да. Не могу сейчас это понять, но завтра я проверю. Спасибо, сейчас. – kos 7 April 2015 в 01:27
  • 2
    Это шаблоны оболочки, а не регулярные выражения, но они довольно полные – glenn jackman 7 April 2015 в 03:50
  • 3
    Напротив, так как ответ heeymal дает хорошее решение конкретной проблемы, которую я опубликовал в качестве примера, даже жесткий мой вопрос более общий и в основном связан с sed и регулярными выражениями вообще – kos 7 April 2015 в 20:15

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

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