Во-первых, чтобы передать переменную оболочки в ваш скрипт awk, используйте -v
:
awk -F":" -v arg="$1" ...
Во-вторых, вы не сможете использовать синтаксис регулярных выражений /.../
для чего-либо, кроме строковой константы, поэтому вместо этого используйте оператор ~
с $0
:
awk -F":" -v arg="$1" '$0 ~ "^(something lets recognize " arg " as arg)+" { print $2 }'
например:
$ var=foo
$ cat file
something lets recognize foo as arg:shut the door:the color is red
$ awk -F":" -v arg=$var '$0 ~ "^(something lets recognize " arg " as arg)+" { print $2 }' file
shut the door