Centos에서 다음 명령을 실행하려고 하는데 오류가 발생합니까? "(" 근처에 예기치 않은 표시가 있습니다.
gawk { if($0=="id323"){print $0} } doc.txt
답변1
awk
쉘이 명령을 전달하기 전에 이를 확인하고 구문 분석하는 것을 방지하려면 실제 스크립트를 큰 따옴표로 묶어야 합니다 awk
.
gawk '{ if( $0 == "id123"){ print $0 } }' doc.txt
그런데, 이 작업을 더 우아하게 수행할 수 있습니다.
gawk '$0 == "id123" { print $0 }' doc.txt
답변2
당신이 무엇을 달성하고 싶은지 모르겠습니다. 이 코드는 단지예문서의 행에 id323이 포함되어 있습니다. 귀하는 그것으로부터 더 이상의 정보를 얻지 못할 것입니다. 따라서 간단한 grep이면 충분합니다.
또한: 주어진 솔루션이 전혀 정확하지 않다고 생각합니다. 내 생각에는
gawk '$0 ~/id323/ { print $0 }' doc.txt
다음과 같거나 더 짧아야 한다고 생각합니다.
gawk '$0 ~/id323/' doc.txt