awk recortado de uma palavra específica em string

0

Eu tenho essas cordas

gcc-4.8.3-1.aix7.1.ppc.rpm
gcc-c++-4.8.3-1.aix7.1.ppc.rpm
gcc-cpp-4.8.3-1.aix7.1.ppc.rpm
gcc-gfortran-4.8.3-1.aix7.1.ppc.rpm
libgcc-4.8.3-1.aix7.1.ppc.rpm

Eu quero cortar a partir de ".aix7.1" até o fim para obter

gcc-4.8.3-1
gcc-c++-4.8.3-1
gcc-gfortran-4.8.3-1
libgcc-4.8.3-1

Por favor, como fazer isso com o awk?

    
por elbarna 23.04.2015 / 16:28

2 respostas

1

Você pode fazer assim:

root@localhost:~# cat test
gcc-4.8.3-1.aix7.1.ppc.rpm
gcc-c++-4.8.3-1.aix7.1.ppc.rpm
gcc-cpp-4.8.3-1.aix7.1.ppc.rpm
gcc-gfortran-4.8.3-1.aix7.1.ppc.rpm
libgcc-4.8.3-1.aix7.1.ppc.rpm
root@localhost:~# awk 'BEGIN{FS=".aix7.1"} {print $1}' test
gcc-4.8.3-1
gcc-c++-4.8.3-1
gcc-cpp-4.8.3-1
gcc-gfortran-4.8.3-1
libgcc-4.8.3-1
root@localhost:~#
    
por 23.04.2015 / 16:38
5

Eu dividiria a linha em pontos e removeria os últimos 4 campos

awk -F. -v OFS=. '{NF-=4}1'

Mas o código de Costas em seu comentário responde mais diretamente aos requisitos.

    
por 23.04.2015 / 16:34

Tags