작은 따옴표를 사용하여 awk의 작업 설명을 묶으면 예상대로 작동합니다.
$ dpkg -l | grep "linux\-[a-z]*\-" | awk {'print $2'}
linux-headers-3.13.0-27
linux-headers-3.13.0-27-generic
linux-headers-3.14.4-031404
linux-headers-3.14.4-031404-generic
linux-headers-generic
linux-image-3.13.0-27-generic
linux-image-3.14.4-031404-generic
linux-image-extra-3.13.0-27-generic
linux-image-generic
linux-libc-dev:i386
linux-sound-base
그러나 큰 따옴표를 사용하여 묶으면 특정 열 / 필드 대신 전체 줄을 인쇄합니다.
$ dpkg -l | grep "linux\-[a-z]*\-" | awk {"print $2"}
ii linux-headers-3.13.0-27 3.13.0-27.50 all Header files related to Linux kernel version 3.13.0
ii linux-headers-3.13.0-27-generic 3.13.0-27.50 i386 Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii linux-headers-3.14.4-031404 3.14.4-031404.201405130853 all Header files related to Linux kernel version 3.14.4
ii linux-headers-3.14.4-031404-generic 3.14.4-031404.201405130853 i386 Linux kernel headers for version 3.14.4 on 32 bit x86 SMP
ii linux-headers-generic 3.13.0.27.33 i386 Generic Linux kernel headers
ii linux-image-3.13.0-27-generic 3.13.0-27.50 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-3.14.4-031404-generic 3.14.4-031404.201405130853 i386 Linux kernel image for version 3.14.4 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-27-generic 3.13.0-27.50 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-generic 3.13.0.27.33 i386 Generic Linux kernel image
ii linux-libc-dev:i386 3.13.0-27.50 i386 Linux Kernel Headers for development
ii linux-sound-base 1.0.25+dfsg-0ubuntu4 all base package for ALSA and OSS sound systems
왜 그래야만하지? 큰 따옴표를 사용하여 awk의 동작 문을 묶는 이유는 작은 따옴표를 사용하여 묶는 것과 다른 결과를 생성하는 이유는 무엇입니까? 큰 따옴표를 사용하여 묶는 것이 작은 따옴표를 사용하는 것처럼 작동하도록 할 수 있습니까?
중괄호 밖에서 작은 따옴표를 사용하십시오.
—
Avinash Raj
@AvinashRaj 구문 오류가 발생하면의 모든 조치 명령문이 내에
—
Aditya
awk
있어야합니다 { ... }
.
구문 오류가 발생한다고 누가 말했습니까? Awk sysntax는 다음과 같습니다
—
Avinash Raj
awk 'condition1{action1} condition2 {action2}'
. 우리가 이와 같이 awk 명령을 주면 awk '{print $1}'
주어진 조건이 없음을 의미합니다.
나는 당신의 명령
—
Avinash Raj
awk {'print $2'}
이 잘못되었다고 말하지 않았습니다 . 나는 중괄호 안에 작은 따옴표를 피하는 것이 더 좋을 것이라고 말했다.
@AvinashRaj 오 .. 다른 의미가 있다고 생각했습니다.
—
Aditya