У меня есть эта командная строка, которая отлично работала в OS X 10.6.8 (Snow Leopard) (что говорит мне, что ее grep - это grep (GNU grep) 2.5.1)...
$ grep -hi 'TERM' file1.txt | cut -d '|' -f 3 | grep -f - file2.txt
(Нахождение всех строк с TERM в них в файле 1, сокращение каждой из них до уникального идентификационного номера в поле 3, а затем поиск этих идентификаторов в файле 2)
И все же это не работает в OS X 10.11.5 (El Capitan) (что говорит мне, что его grep - это grep (BSD grep) 2.5.1-FreeBSD)...
grep: -: No such file or directory
Я действительно не хочу устанавливать GNU grep на эту машину. Есть ли способ исправить вторую команду grep, чтобы BSD grep работал? Или лучший способ сделать это в целом?
Некоторый пример кода:
file1.txt будет выглядеть так:
Jones Inc||000123||foo||bar
TerminatorLLC||000124||foo||bar
Conan LP||000125||foo||bar
Termites-R-Us||000126||foo||bar
file2.txt как:
000123||210 Main Street||moo||car
000124||Los Angeles||moo||car
000125||Mythical Kingdom||moo||car
000126||Your Woodwork||moo||car