Я думаю, что я понял это правильно: если (kw ~ $ i) я хочу проверить это, термин ($ i) является членом списка ключей (kw). Спасибо за ответ:
Решением, которое я придумал, был префикс с: sed 's / [()] / \ & / g' Это выходит за скобки, так что интерпретатор регулярных выражений оставляет их в покое, поэтому у меня есть:
echo "private public ()" |sed 's / [()] / \ & / g' |awk 'BEGIN {kw = "private"} {for (i = 1; i <= NF; i ++) if (kw ~ $ i) print $ i}' </p>
Это работает, но я искалчто-то более элегантное.