grep
здесь не подходит, так как он используется для извлечения отдельных строк, соответствующих некоторой форме регулярного выражения (, а не для сравнения файлов на самом деле ). Он не сможет вернуть одно совпадение и отбросить другое (первые две строки вашего файлаb
).
Вы можете использоватьcomm
:
$ comm -13 a b
1111|100|11/11/1111|a
5555|500|11/11/1111|a
Обратите внимание, что comm
зависит от отсортированных входных данных.
Приведенная выше команда comm
использует -13
для отбрасывания первого и третьего столбцов в выходных данных по умолчанию. По умолчанию он выводит строки, найденные только в первом файле в столбце 1, строки, найденные только во втором файле в столбце 2, и общую строку в последнем столбце (. См. руководство для comm
в вашей системе. стандартная утилита):
$ comm a b
1111|100|11/11/1111|a
1111|100|11/11/1111|a
2222|200|11/11/1111|a
3333|300|11/11/1111|a
4444|400|11/11/1111|a
5555|500|11/11/1111|a