Другой подход состоит в том, чтобы просмотреть файл дважды, сначала для создания ссылки, а затем для фильтрации по мере необходимости.
$ awk 'NR==FNR{a[$3]++; next} a[$3]==3' ip.txt ip.txt
1 2 APPLE
8 2 APPLE
3 4 APPLE
$ awk 'NR==FNR{a[$3]++; next} a[$3]==2' ip.txt ip.txt
3 4 PEAR
9 3 LEMON
9 3 LEMON
8 3 PEAR
$ awk 'NR==FNR{a[$3]++; next} a[$3]<2' ip.txt ip.txt
A B C
8 3 ORANGE
Вы можете проверить положение курсора, следующее даст вам положение курсора по горизонтали:
IFS=';' read -sdR -p $'\E[6n' ROW COL;echo "${COL#*[}"
, а затем, например, в сценарии вы можете сделать
#!/bin/bash
x_pos=$(IFS=';' read -sdR -p $'\E[6n' ROW COL;echo "${COL#*[}")
if [ $x_pos == 1 ]
then
echo "We are at the beginning since cursor is at $x_pos"
else
echo "Cursor is at $x_pos so send $LF with \n"
fi