awk는 문자열에서 특정 단어를 잘라냅니다.

awk는 문자열에서 특정 단어를 잘라냅니다.

나한테 그 밧줄이 있어

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

".aix7.1"에서 끝까지 잘라내고 싶습니다.

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

awk를 사용하여 이 작업을 어떻게 수행할 수 있나요?

답변1

선을 점으로 분할하고 마지막 4개 필드를 삭제하겠습니다.

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

그러나 Costas의 의견에 있는 코드는 요청에 더 직접적으로 응답합니다.

답변2

다음을 수행할 수 있습니다.

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:~#

관련 정보