cat file1 2 5 1 6 cat file2 5 A 2 B 6 C 1 D
Требуемый выходной файл:
2 B 5 A 1 D 6 C
Я пробовал это:
grep -Ff file1 file2 > output
Однако вывод был похож на это:
1 D 2 B 5 A 6 C
awk на помощь!
awk
$ awk 'NR==FNR{a[$1]=$0; next} $1 in a{print a[$1]}' file2 file1 2 B 5 A 1 D 6 C
без awk немного сложно
$ join -12 <(nl file1 | sort -k2) <(sort file2) | sort -k2n | cut -d' ' -f2 --complement