Como divido o texto em linhas e imprimo seu valor correspondente?

0

Eu quero dividir um texto em linhas e imprimir seu valor, por exemplo, mudar isso:

YLB; YLR; YLS (tab) 30

Para isso:

YLB (tab) 30
YLR (tab) 30
YLS (tab) 30
    
por joshiricky 20.02.2017 / 17:25

3 respostas

0

Usando awk

awk 'BEGIN {FS="[; \t]+"; OFS="\t"} {for (i=1; i<NF; i++) print $i, $NF}'

Ex.

$ echo 'YLB; YLR; YLS     30' | awk 'BEGIN {FS="[; \t]+"; OFS="\t"} {for (i=1; i<NF; i++) print $i, $NF}'
YLB     30
YLR     30
YLS     30
    
por 20.02.2017 / 17:47
0

Tente isso

sed 's/; /\n/g' yourfile

Veja esta postagem: link t

    
por 20.02.2017 / 17:34
0

Esta é uma maneira de fazer isso com "sed":

TAB='echo 'x' | tr 'x' '1''; # tab
SPC='echo 'x' | tr 'x' '0''; # space
WS="[${SPC}${TAB}]";            # whitespace regex
echo "YLB; YLR; YLS ${TAB} 30" |
sed -ne "
    /\n/!G
    s/^\([^;]*\);${WS}*\(.*\)\(${WS}${TAB}.*\)//
    P;/\n.*\n/D
 "

Precisamos ter as variáveis de shell TAB / SPC / WS, pois o POSIX "sed" não suporta \ t \ s, portanto, essa é uma implementação pobre dessas.

    
por 20.02.2017 / 23:20

Tags