sudo -u rswrk96 -i killall ...
должен совпасть с выполнением su - rswrk96
и затем killall ...
.
То, что оставляют, генерирует последовательность 00-96. Это должно работать:
for i in $(seq -w 00 96); do sudo -u rswrk$i -i killall ...; done
Теперь, когда я думаю о нем, Вы могли, вероятно, просто сделать
for i in $(seq -w 00 96); do sudo killall -u rswrk$i; done
Не должны входить в систему.
Ищите строку, которая запускается с projdir
, и замените целую строку новой:
sed -i 's/^projdir .*$/projdir PacMan/' .ignore
^
и $
beginning/end-of-line маркеры, таким образом, шаблон будет соответствовать целой строке; .*
соответствия что-либо. -i
говорит sed
записать изменения непосредственно в .ignore
, вместо того, чтобы просто произвести их
Один подход должен переписать всю строку, с помощью обратных ссылок для частей, которые Вы хотите сохранить:
sed -e 's/^\( *projdir *\)[^ ]*\(.*\)*$/\1PacMan\2/'
Другой подход должен переписать ту часть строки, но только если некоторая другая часть соответствует:
sed -e '/^ *projdir / s/ [^# ]/ PacMan/'
Оба примера переписывают второе разграниченное пробелом слово на строках, где первое слово projdir
.
sed -i 's:^projdir.*$:projdir PacMan:g' .ignore
^ projdir - найти строку, которая начинается со строки projdir. . * $ Там означает строку после projdir в строке в той же строке. Строка projdir PacMan - это строка, которой мы заменяем. g для global - для замены всех таких строк, начинающихся с projdir. . ignore - это имя файла