Seu script do AWK está quase lá:
awk -F'|' 'NR==FNR{c[$1]++;next};c[$1] > 0' file1 file2 > output.txt
funciona, depois de mudar os finais de linha do Mac para o Unix:
tr '\r' '\n' < file1 > file1.new
mv file1.new file1
tr '\r' '\n' < file2 > file2.new
mv file2.new file2
$1
é o primeiro campo no AWK.
Em vez de c[$1] > 0
, você pode escrever c[$1]
. O > 0
não é necessário: qualquer valor diferente de zero funciona, portanto, também podemos usar o conteúdo de c
diretamente:
awk -F'|' 'NR==FNR{c[$1]++;next};c[$1]' file1 file2 > output.txt