awk를 사용하여 Unix의 파일에서 사용자 입력 패턴 검색

awk를 사용하여 Unix의 파일에서 사용자 입력 패턴 검색

사용자가 입력한 패턴을 파일에서 검색하기 위해 awk 스크립트를 작성하려고 합니다.
내 코드는 다음과 같습니다.
awk 'BEGIN{printf "Enter : ";getline input<"/dev/tty"} /'"$input"'/ {print}' <abc.txt
출력으로 얻는 것은 전체 파일입니다. 누군가 내가 잘못 가고 있는 부분을 찾는 데 도움을 줄 수 있습니까?

답변1

당신이 하는 일은: tty에서 패턴을 읽고, 이를 input이라는 awk(셸이 아닌) 변수에 넣은 다음, awk의 내용 행과 일치시키는 것입니다.껍데기입력이라는 변수입니다. (따옴표를 보고 코드를 직접 해석해 보십시오.) 해당 변수는 비어 있으므로 awk는 항상 일치하는 빈 정규식인 //와 해당 행을 일치시킵니다.

당신이해야 할 일은

$0 ~ input { print }

또는

match( $0, input) { print }

실제로 "{ print }"는 일치하는 문제에 대한 기본 작업이 레코드를 인쇄하는 것이므로 생략할 수 있습니다.

관련 정보