специальные строки grep / awk, основанные на определенных полях; с использованием переменной ksh с awk

У меня есть этот входной файл: file_in.txt (с разделителем по каналу )

3345:tyg|rty|27|0|0|ty6|{89|io|}62|0 3346:tyg|rtyuio|63|0|1|ty6|{89|gh|}45|0 3347:tyu|ray|24|0|0|ty6|{89|uh|}27|0 3348:tyg|rtoy|93|0|1|ty6|{89|yh|}1|0 3349:tyo|rtert|28|0|0|ty6|{89|gh|}27|0 

Я хочу получить только те строки, которые имеют значение 9-го поля как }27 используя '|' как разделитель, так что мой вывод должен быть:

 3347:tyu|ray|24|0|0|ty6|{89|uh|}27|0 3349:tyo|rtert|28|0|0|ty6|{89|gh|}27|0 

Ниже команда отлично работает:

 awk -F"|" '{ if ($9 == "}27") print $0 }' file_in.txt 

Но я хочу использовать переменную оболочки вместо "}27" для которой я пробовал это:

 taskid="}27" awk -v tid="$taskid" -F"|" '{ if ($9 == "}tid") print $0 }' file_in.txt 

Пожалуйста, помогите мне выяснить, где я ошибаюсь в этой команде. Любые другие предложения команды для достижения того же оцениваются.

Interesting Posts

исправление / восстановление суперблоков JFS (или восстановление данных из поврежденной файловой системы)

Как я рекурсивно ретранслировать через .gz-файлы?

Цветной вывод меньше при обращении к файлу журнала

Предотвращение случайного удаления каталогов. Создание псевдонима, содержащего параметры?

«Нет такого файла или каталога» при сравнении чисел в bash

Как вставить новые строки в PATTERN при использовании fgrep / grep -F / grep -fixed-strings

Команда, добавленная в visudo, по-прежнему терпит неудачу при разрешении?

Как сканировать и сравнивать два файла, которые будут соответствовать IP-адресам? Сценарий для веб-хостинга

Что такое активация планировщика?

Как включить настройки ноутбука в debian?

Настройки регулятора CPU

Индивидуальный формат писем Bugzilla

Почему xargs заставляет apt-get прерываться?

Не удается установить php-mssql или freetds на Centos7

Игнорировать строки, содержащие заглавную букву

Linux и Unix - лучшая ОС в мире.