변수와 함께 awk 사용

변수와 함께 awk 사용

입력된 텍스트를 처리하는 프로그램에 입력된 모든 단어를 기반으로 단어 목록을 만들고 있습니다. 스트림 편집기(예: sed 또는 awk)를 사용하여 문서의 각 줄의 첫 번째 단어를 검색하고 변수에 저장된 패턴이 발견되면 줄 번호를 반환하고 싶습니다. 난 너무 많아잘 작동지금까지:

awk $1 '{print $1 " " NR""}' dictionary.txt | awk '/^**myWord** /' | cut -d" " -f2

그러나 "myWord" 대신 변수를 사용하는 방법을 모르겠습니다. 예를 들어 다음을 사용할 때만 오류가 발생합니다.

read=searchWord

awk $1 '{print $1 " " NR""}' words.txt | awk '/^**$searchWord** /' | cut -d" " -f2

답변1

작은따옴표로 묶인 문자열 내에서는 변수 확장이 발생하지 않습니다 '. 노력하다:

searchWord="myWord"
awk $1 '{print $1 " " NR""}' words.txt | awk '/^**'"$searchWord"'** /' | cut -d" " -f2

답변2

노력하다awk -v

-v var=val
--assign var=val
    Assign the value val to the variable var, before execution of the program begins.  
    Such variable values are  available  to  the  BEGIN block of an AWK program.

관련 정보