Usando vários comandos sed para manipulação de texto

0

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 o TAB por espaços e depois remover comentários (também há comentários, que começam com ##) e linhas vazias. Depois disso, gostaria de inserir um arquivo depois de um padrão especificado no meu arquivo. Há algo de errado com a ordem de comando?

    
por plaidshirt 21.06.2016 / 22:17

1 resposta

1

você pode dar instruções múltiplas em uma tomada de sed, por exemplo:

sed 's/\t/    /g;/^ *$/d;s/^#/NODIESE/' testfile

esta linha única

  1. substituir guia por espaço
  2. excluir linha que começa com material vazio (ou linha vazia)
  3. substitua Dash no início pela palavra NODIESE

para que o seu arquivo de teste seja processado apenas uma vez e você inicie o sed apenas uma vez.

    
por 22.06.2016 / 04:01