Поведение udhcpc -n -b
было исправлено, чтобы вести себя как udhcpc -b
в исправлении для ошибки busybox #11691 .
Таким образом, начиная с busybox -1.31 (, который еще не выпущен на данный момент ), udhcpc_opts -b
должен работать как положено.
Чтобы сопоставить строки, начинающиеся с DL1 :
, и добавить ,ghj@kk.com
в конец($
)из них:
$ sed '/^DL1 :/ s/$/,ghj@kk.com/' file
DL1 : abc@kk.com,cde@kk.com,xyz@kk.com,ghj@kk.com
DL2 : hjk@kk.com,nbv@kk.com,tuy@kk.com
В зависимости от ваших требований и версии sed
вы можете добавить -i
, чтобы выполнить преобразование в месте -.
Простое выполнение вашего требования с помощьюawk
:
awk '$1 == "DL1" {$0 = $0 ",ghj@kk.com"} 1' file
Используя GNU awk, вы можете использовать опцию -i
для внесения правок на месте, в противном случае вам нужно будет создать временный файл с выводом.
Если вы хотите добавить эту функциональность в сценарий оболочки, вы можете передать поиск и ввод с помощью переменных awk. Что-то вроде:
#!/bin/sh
search=$1
addition=$2
awk -v s="$search" -v a="$addition" '$1 == s {$0 = $0 "," a} 1' file
Это довольно простая задача для стандартного редактора UNIX, ред.:
printf '%s\n' '/^DL1 :/ s/$/,ghj@kk.com/' w q | ed -s input
Приведенное выше выводит три команды, разделенные новой строкой -, вed
:
DL1 :
, найдите и замените конец -маркера строки -($
)на,ghj@kk.com
w
записать файл на диск q
у ред Это приводит к добавлению ,ghj@kk.com
в конец строки DL1 :
.