Combine comandos SED

3

Qual é a melhor maneira de combinar esses dois comandos SED? O primeiro comando procura por CSP e, em seguida, desce uma linha. O segundo comando coloca um ponto e vírgula na coluna 3.

sed -ne '/CSP/{n;p;}' test1>test2
sed 's/./;/3' test2>final

O comando é necessário para agir sobre uma linha de dados e não pode ser conduzido separadamente.

    
por 985ranch 23.08.2016 / 19:19

2 respostas

3

Em geral, os comandos sed podem ser reunidos separados por novas linhas ou por ponto e vírgula. Um pouco como sh ou python, na verdade. (A maioria dos comandos sed , isto é, alguns requerem a nova linha.)

Então, para colocar n , p e s juntos, você pode usar apenas ponto e vírgula, como você já fez com {n;p} no primeiro comando. O comando completo neste caso seria:

sed -ne '/CSP/{n;s/./;/3;p;}' test1 > final

Ou você pode escrever com novas linhas:

sed -ne '/CSP/{n
s/./;/3
p
}' test1 > final

Mas isso é um pouco chato de se fazer na linha de comando para um simples one-liner (e aparentemente ainda mais difícil em csh ), mas pode ser mais útil caso você salve um script sed em um arquivo. / p>     

por 25.08.2016 / 14:56
0

Também descobri que a remoção de alguns parâmetros ajudava quando eu precisava usar arquivos maiores e deixar mais conteúdo do arquivo intacto. Estou respondendo isso no caso de alguém ver isso no futuro.

sed '/CSP /{n;s/./;/3;}' test1>test2
    
por 25.08.2016 / 17:28

Tags