-
Para cada linha de entrada, cada expressão / script é aplicado a ela por vez. O comando
sed -e 's/apple/orange/g' -e 's/orange/red/g'
substituiria todas as ocorrências da string
apple
eorange
pela stringred
. -
Existe apenas uma passagem através dos dados de entrada.
sed
lida com fluxos, é um editor de fluxo , e o fluxo de entrada nem precisa ser procurado.
O exemplo que você teve,
sed -e "script1" -e "script2"
é o mesmo que
sed "script1;script2"
que é o mesmo que
sed -f file1 -f file2
em que file1
contém script1
e file2
contém script2
, que é o mesmo que
sed -f file
onde file
contém
script1
script2
ou
script1;script2
Se sed
é adequado para sua tarefa, depende totalmente da tarefa. Assim como sed
, awk
não precisa analisar um arquivo ou fluxo de entrada mais de uma vez. Algumas tarefas são mais adequadas para awk
, especialmente aquelas que exigem agregação de dados.
sed
é um editor, awk
é mais uma linguagem de processamento de texto em comparação.