입력된 텍스트를 처리하는 프로그램에 입력된 모든 단어를 기반으로 단어 목록을 만들고 있습니다. 스트림 편집기(예: 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.