Como remover parte de uma linha?

0

Eu preciso remover parte de uma linha em um grupo de arquivos.

Exemplo de linha:

TRN*1*301444/05-13-20*6549873211~

Eu preciso que seja isso (remova a parte /05-13-20 ):

TRN*1*301444*6549873211~

A barra até o último asterisco precisa ser removida e a nova linha precisa ser retida no arquivo.

    
por wbl 08.09.2016 / 19:22

2 respostas

1

com sed :

sed -n 's_/[^*]*__p'
  • /[^*]* corresponde a parte de / upara o próximo * e, em seguida, é substituído por nulo, pois usamos uma string vazia na substituição

Exemplo:

% sed -n 's_/[^*]*__p' <<<'TRN*1*301444/05-13-20*6549873211~'
TRN*1*301444*6549873211~
    
por 08.09.2016 / 20:00
0

Expressões regulares podem ser usadas para fazer isso. Eles estão disponíveis na maioria dos idiomas, mas o perl é o regex líder. Há muitas maneiras de fazer o que você pediu com o regex, mas aqui está um exemplo:

perl -pi -e 's/\/.*\*/*/g' file.txt
    
por 08.09.2016 / 19:57

Tags