Eu tenho um monte de saída passando por sed e awk.
Como prefixo a saída com START e sufixo a resposta com END?
Por exemplo, se eu tiver
All this code
on all these lines
and all these
Como eu pude obter:
START
All this code
on all these lines
and all these
END
?
Minha tentativa foi:
awk '{print "START";print;print "END"}'
mas eu tenho
...
START
All this code
END
START
on all these lines
END
START
and all these
END
text-processing
sed
awk
regular-expression
Michael Durrant
fonte
fonte
Respostas:
Isso funciona, conforme indicado por jasonwryan :
fonte
Isso pode ser feito
sed
com1i
meios i NSERT antes linha 1;$a
significa um pender após a última linha. A$'…'
sintaxe é específica do bash. Em outras conchas, você deve conseguir fazer isso com:fonte
Se você já está usando o sed, pode usar
1
para corresponder à primeira linha e$
à última linha (consulte a resposta de Scott ). Se você já estiver usando o awk, poderá usar umBEGIN
bloco para executar o código antes da primeira linha e umEND
bloco para executar o código após a última linha (consulte a resposta de Michael Durrant ).Se tudo o que você precisa fazer é adicionar um cabeçalho e um rodapé, basta usar
echo
ecat
.Em um pipeline, para executar vários comandos, use
{ … }
para informar ao analisador que eles são um único comando composto.fonte