A expansão da variável não ocorrerá dentro de uma única string '
citada. Experimente:
searchWord="myWord"
awk $1 '{print $1 " " NR""}' words.txt | awk '/^**'"$searchWord"'** /' | cut -d" " -f2
Eu estou fazendo uma lista de palavras de todas as palavras digitadas em um programa que estará trabalhando com o texto inserido nele. Eu quero usar um editor de fluxo como sed ou awk para pesquisar a primeira palavra de cada linha em um documento e retornar o número da linha quando um padrão - armazenado em uma variável - for encontrado. Eu tenho tanto funcionando corretamente até agora:
awk $1 '{print $1 " " NR""}' dictionary.txt | awk '/^**myWord** /' | cut -d" " -f2
No entanto, não consigo descobrir como usar uma variável no lugar de "myWord". Por exemplo, só recebo erros quando uso:
read=searchWord
awk $1 '{print $1 " " NR""}' words.txt | awk '/^**$searchWord** /' | cut -d" " -f2
A expansão da variável não ocorrerá dentro de uma única string '
citada. Experimente:
searchWord="myWord"
awk $1 '{print $1 " " NR""}' words.txt | awk '/^**'"$searchWord"'** /' | cut -d" " -f2
Experimente 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.