Вы можете использовать:
sed '/^\s*$/d;s/\s[0-9][^ ]*$//g' inputfile | uniq -D -f3
Здесь sed удаляет пустые строки (^\s*$
), а также последнее поле входного файла.Uniq печатает повторяющиеся строки, игнорируя первые три поля (-f3
).Вывод:
line 4 2 var281
line 5 2 var281
line 8 3 var99
line 9 3 var99
Примечание последнее поле не печатается.Чтобы распечатать его, вы можете использовать grep:
grep "$(sed '/^\s*$/d;s/\s[0-9][^ ]*$//g' inputfile | uniq -D -f3)" inputfile
output:
line 4 2 var281 90
line 5 2 var281 91
line 8 3 var99 14
line 9 3 var99 19