Назовите sed для замены строки, сохраненной в переменной удара

Его твердое для высказывания наверняка. Они могут быть вещами, которые Вы уже попробовали, но они могут привести к легкому решению.

xmodmap работает на другие ключи или является там чем-то, что делает fluxbox, который повреждает xmodmap полностью?

Что происходит, если Вы запускаете x, modmap ключ питания, и затем запускаете fluxbox? Отображение придерживается?

При выполнении xmodmap, прежде чем fluxbox работает и сохраняет настройки, можно или записать сценарий оболочки для вызова обоих в надлежащем порядке, или если Вы используете gdm, он должен читать ~/.xmodmap или ~/.xmodmaprc автоматически для Вас, прежде чем fluxbox вводит изображение.

2
02.10.2014, 23:55
3 ответа

Так что выше плакаты говорят, что дети не умирают, родитель убивает их (или посылает им сигнал, на котором они заканчивают). Таким образом, вы можете иметь то, что вы спрашиваете, если вы программируете Родителя, чтобы (1) вести учет всех его детей, и (2) послать сигнал всем его детям.

Это то, что делает Shell, и это должно быть то, что делает ваш родительский процесс. Возможно, потребуется перехватить сигнал HUP у родителя, чтобы у вас было достаточно контроля, чтобы убить детей.

-121--10511-

Для обновления Bash в различных ОС можно использовать универсальный сценарий Deshellshock .

-121--37714-

Найдено решение, использование "" вместо ".

1
27.01.2020, 22:00

С zsh:

array1=(
  string1
  string2
  string3
)
sed -i -e/$^array1/d file

Удалит все строки, совпадающие с любым регексом в $array1.

Или вы можете сделать (любая оболочка, похожая на Борна):

regexps='string1
string2
string3'
grep -ve "$regexps" file

Или, для поиска строк, добавить -F:

grep -F -v -e$^array1 # (zsh)

или:

strings='string1
string2
string3'
grep -F -ve "$strings" # (any shell)
3
27.01.2020, 22:00

Я бы не использовал SED вместо этого использовать exrep -i -v (-i нечувствителен для случая -i -v не совпадает с шаблоном):

egrep -i -v "$(echo ${ARRAY1[@]} | tr ' ' '|')" /etc/file

выражение

echo ${ARRAY1[@]} 

, потому что у него нет ни одного цитата, не распечатано новую строку строка со всеми строками в массиве.

tr ' ' '|'

заменит все пробелы с \ | (или) для выражения GREP, которое построит шаблон для вашей команды GREP.

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

 sed -i $(echo ${ARRAY1[@]} | sed -e 's:\w\+:-e "/\1/d":g') /etc/file

Это создаст отдельную «/ StringFromarray / D» для команды Sed Base SED

: Убедитесь, что нет пробелов или «/ $ |» в струнах в вашем массиве. Если есть в зависимости от того, какое решение вы пытаетесь, это может мешать.

0
27.01.2020, 22:00

Теги

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