Eu tenho um arquivo bash no qual gostaria de fazer várias alterações.
sed -i 's/ / /g' testfile
sed -i -e 's/#[a-z]$//' -e '/^$/d' testfile
sed -i 's/ *$//' testfile
sed '/##=/ r header' testfile
No primeiro comando gostaria de substituir TAB por espaços e depois remover comentários (também existem comentários, que começam com ##) e linhas vazias. Depois disso, gostaria de inserir um arquivo após um padrão especificado no meu arquivo. Há algo errado com a ordem dos comandos?
Responder1
você pode dar várias instruções em uma única dose de sed, por exemplo:
sed 's/\t/ /g;/^ *$/d;s/^#/NODIESE/' testfile
esta única linha
- substitua tabulação por espaço
- excluir linha que começa com material vazio (ou linha vazia)
- substitua Dash no início pela palavra NODIESE
portanto, seu arquivo de teste é processado apenas uma vez e você inicia o sed apenas uma vez.