bat sintaxe para remover certos elementos [fechados]

0

Eu quero usar "sed" para remover "\ n", "\ r", "Conectado". e "" de uma string.

echo "   Connected. 
97  " | sed -e 's/[Connected.|\n|\r\ ]//g'

O resultado que espero receber é "97".

    
por AlluSingh 27.07.2017 / 01:51

1 resposta

1

\n não pode ser removido dessa forma pelo clássico (POSIX) sed , eles são delimitadores de linha e não fazem parte da sequência que está sujeita à substituição s/// . Eles devem ser removidos por tr depois:

sed -e 's/Connected\.//g' | tr -d ' \r\n'

(como usamos tr , removemos todos os caracteres de interesse)

No entanto, você pode usar uma única instrução s/// com GNU sed , que pode operar em um arquivo inteiro de uma só vez com a opção -z (que não é uma boa idéia em arquivos grandes):

sed -z -r -e 's/Connected\.|\n|\r| //g'
    
por 27.07.2017 / 03:17

Tags