()
- специальные символы в RegEx , они предназначены для перехвата вещей в группе
(…)
Скобки используются для группировки в регулярных выражениях,как в арифметике.Они могут использоваться для объединения регулярных выражений, содержащих оператор чередования '|'.Например, '@ (samp | code) {[^}] +}' соответствует обоим '@code {foo}' и '@samp {bar}'.(Это управляющие последовательности форматирования Texinfo. «+» Объясняется далее в этом списке.)
Так что /g(tot)/
фактически соответствует gtot
, а не g(tot)
.
Вам необходимоэкранировать его, как это /g\(tot\)/
.
Также вы можете удалить часть {print}
, она подразумевается после условия, так что суммы:
awk '/g\(tot\)/' ./*/*.out
Однако для этой простой задачи япредложил бы использовать grep
вместо:
awk 'g\(tot\)' ./*/*.out
И вы также можете использовать sed
:
sed -n '/g\(tot\)/p' ./*/*.out