cut
также может быть вашим другом
cut -d'|' -f3
даст вам третье поле, -f означает поле, начиная с 1 слева (знаю, кощунственно в компьютерах), а -d - это разделитель, который будет использоваться для разделения полей. Отсюда вы можете направить его куда угодно, если вам нужна самая последняя строка, вы можете направить ее через tail -n1
и так далее
Вы заменяете запрос
и ответ
одной и той же строкой, чтобы строки, принадлежащие друг другу, стали равными. Затем вы ищете отдельные строки. Если строка ответа может появиться и позже, то вы должны отсортировать строки перед этой проверкой:
awk -F\| -v OFS=\| '{$3="x";print;}' file | uniq --unique
или
awk -F\| -v OFS=\| '{$3="x";print;}' file | sort | uniq --unique