Preciso encontrar todas as linhas em meu arquivo de dados que contenham NO_ID e, em seguida, substituir a string "confirmada" por "a ser confirmada".
Eu tentei isso:
sed '/NO_ID/, s/confirmed/to be confirmed/' stats.txt
que não parece funcionar.
Remova a vírgula. A expressão regular inicial atua como o "endereço" para o comando subsequente
s
(o espaço mostrado aqui entre o endereço e o comando é opcional):Isso pode ser reduzido ainda mais se substituirmos a palavra
confirmed
pela coisa correspondente à expressão regular nos
comando:Se você precisar garantir que as linhas que contêm
to be confirmed
não sejam modificadas:ou,
Aqui, o primeiro comando detecta primeiro as linhas que contêm
NO_ID
e aplica a substituição a elas, a menos que a linha também contenhato be confirmed
. O segundo comando detecta e pula linhas contendoto be confirmed
(ab
instrução pula para o final do script, fazendo com que a linha não seja mais modificada, mas impressa). As linhas que não contêmto be confirmed
sofrem a mesma modificação do comando original.Assim:
Sem vírgula aqui