Como remover caracteres e espaços de uma string

4

Olá, tenho um arquivo com saída

Name        : ABC
Name        : CDE
Name        : ZYS

Eu quero o resultado

ABC
CDE
ZYS

Como posso obtê-lo através do comando SED?

Eu tentei. sed s/'Name' mas retorna a saída como : ABC

Eu quero cortar o espaço e também : da string.

    
por Moiz 17.04.2013 / 08:43

5 respostas

7

Você pode usar awk para isso:

awk '{print $3}' yourfile

Isso simplesmente imprime o terceiro campo / coluna para cada registro / linha.

    
por 17.04.2013 / 08:46
3

Se você usa sed:

sed 's/^.*: //' yourfile

ou para ser um pouco mais preciso:

sed 's/^Name[^:]*: //' yourfile

    
por 17.04.2013 / 10:24
3

Com as versões recentes do GNU grep, você pode fazer isso com uma aparência positiva:

grep -oP '(?<=: ).*' infile

Ou mais portável:

grep -o ':.*' infile | grep -o '[^ ]*$'

Saída:

ABC
CDE
ZYS
    
por 17.04.2013 / 10:40
3

Para completar as outras respostas de outra forma:

cat file | cut -d: -f 2- 

você pode cortar o espaço restante

cat file | cut -d: -f 2- | cut -c 2-

Ou mais compacto, um pouco menos legível:

cut -d: -f 2- < file | cut -c 2-
    
por 17.04.2013 / 14:18
1

Você pode usar o comando awk abaixo:

awk -F ':' '{print $2}' 
    
por 27.11.2014 / 15:04