corr a anexar o caminho até o final da pesquisa de padrão de linha específica [duplicado]

1

Gostaria de acrescentar variáveis de caminho ao fim de linha em uma linha específica com padrão de pesquisa e acrescentar, "Defaults secure_path" string que desejo acrescentar: :/etc/bla/foo/

o arquivo

filename

# asdf
# lkaj
# asdah

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## safdafdhdahdabfdabf
## Aedhadhfdahdahadhda

Pesquisa de padrões de pesquisa por "Padrões secure_path" e anexar ao final da linha:

sed '/^Defaults    secure_path = / s/$/ :/etc/bla/foo/' filename

Mas, recebi um erro:

sed -e expression #1, char 38: unknown option to 's'
    
por johnsnow 22.05.2018 / 11:25

1 resposta

0

você pode usar o comando awk e anexá-lo.

bash-4.1$ cat filename
# asdf
# lkaj
# asdah

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## safdafdhdahdabfdabf
## Aedhadhfdahdahadhda
bash-4.1$
bash-4.1$ awk '$0~/Defaults/{$0=$0":/etc/bla/foo/"}1' filename
# asdf
# lkaj
# asdah

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/etc/bla/foo/

## safdafdhdahdabfdabf
## Aedhadhfdahdahadhda

este comando awk procura o padrão "Defaults" e acrescenta o valor no final da linha.

usando o comando sed

bash-4.1$ sed "s?\(Defaults.*\)?:/etc/bla/foo/?" filename
# asdf
# lkaj
# asdah

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/etc/bla/foo/

## safdafdhdahdabfdabf
## Aedhadhfdahdahadhda
    
por 22.05.2018 / 11:31

Tags