Заменить элемент4 и элемент5 на элемент3

pkill(аналогично pgrep, который использует тот же интерфейс, изначально это команда Solaris,который теперь можно найти во многих других Unix -, включая Linux (procps, пакет ))для уничтожения процессов на основе их имени.

pkill regexp

kills (отправляет сигнал SIGTERM)всем процессам, имя которых ¹ соответствует заданному регулярному выражению.

Итак, здесь pkill nodeуничтожит все процессы, имя которых содержит node. Используйтеpkill -x node(-xкак в grep/ pgrepдля точного соответствия ), чтобы убить процессы с именем точноnode.

Уничтожение на основе pid² — это простоkill(команда, встроенная в большинство оболочек, поэтому ее также можно использовать в заданиях оболочки, а также как отдельную -утилиту ).

Еслиkill 6806(сокращение отkill -s TERM 6806)терпит неудачу, вы можете в качестве последнего -средства попробовать kill -s KILL 6806, что завершит его не -изящно .


¹ имя процесса — понятие, которое немного различается в зависимости от ОС. В Linux это обычно до первых 15 байтов базового имени файла, который выполнялся процессом (или его ближайшим предком ), хотя процесс может изменить его на любое произвольное (, но не более 15 байт. байт )значение. См. также pkill -fдля соответствия в списке аргументов.

² killтакже может завершать работу на основе идентификатора процесса группы . kill -- -123отправляет сигнал SIGTERM всем процессам, чей идентификатор группы процессов равен 123. При использовании спецификации задания для kill, встроенной в оболочки POSIX, (, как и в kill %spec), kill, как правило, также отправляет сигналы процесс группа .

-2
14.02.2020, 16:40
2 ответа

Это<input sed -r 's/item[45]/item3/' >output

У вас будет

1 item1,
2 item2,
3 item3,
4 item3,
5 item3

Если у вас также есть item48, item522и т. д.

это

<input sed -E 's/^([0-9]{1,} +)item[45](,?)$/\1item3\3/' >output
1
28.04.2021, 23:23

Чтобы не совпадать со строками с item44или item51, проверьте необязательную запятую(,?)и конец поля($)перед заменой значений (, как в aborrusosedрешение):

awk '$2 ~ /^item[45],?$/{ gsub(/item[45]/, "item3", $2) } 1' file

Или с GNU awkgensub:

awk '{ $2=gensub(/^item[45](,?)$/, "item3\\1", 1, $2) } 1' file
0
28.04.2021, 23:23

Теги

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