Знак $
является оператором в awk для ссылки на поле.Пример:
$ echo "foo bar car" | awk '{print $2}'
bar
Это печатает bar
, так как bar
является содержимым второго поля.
Двойной знак доллара на самом деле является двойной ссылкой, которая будет использовать информацию первой ссылки на поле для перехода к другой ссылке на поле.Пример:
$ echo "foo bar car 1 2 3" | awk '{print $$5}'
bar
$ echo "foo bar car 1 2 3" | awk '{print $5}'
2
Здесь он печатает bar
, поскольку $5
разыменовывается как 2
и, таким образом, $$5
эквивалентно $2