入力されたテキストを処理するプログラムに入力されたすべての単語に基づいて単語リストを作成しています。ストリームエディタ(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.