Команда Diff для двух файлов и вывод в третий

У меня просто небольшая проблема со сравнением двух файлов с помощью команды diff в сценарии оболочки. Скажем, у меня есть два файла ascii, file1.txt и file2.txt, с содержимым:

файл1.txt

blah/blah2/content.fits/  
blah3/blah4/content2.fits/  
blah5/blah6/content3.fits/  
blah7/blah8/content4.fits/  

файл2.txt

content.fits  
content2.fits

Теперь я хотел бы сравнить два файла на основе расширений .fits, но записать вывод в файл ascii, сохраняя форматирование в файле1.txt, т.е. в этом конкретном примере выходной файл после сравнения этих двух должен дать:

blah5/blah6/content3.fits/  
blah7/blah8/content4.fits/  

Любые идеи?


person user2043160    schedule 19.11.2014    source источник
comment
чего именно вы хотите добиться? Команда diff покажет содержимое двух файлов, которые не являются общими. вот в вашем примере бла/бла/content.fits/ и content2.fits не будут считаться общими. сначала проверьте команду diff, чувак.   -  person Amit Kumar    schedule 19.11.2014
comment
Я думаю, вы больше ищете сопоставление с образцом, чем сравнение.   -  person Dipto    schedule 19.11.2014
comment
grep -vwf file2.txt file1.txt то, что вы хотите?   -  person Etan Reisner    schedule 19.11.2014
comment
Я хочу сравнить два файла, а затем записать разницу в третий файл, что-то вроде diff file1.txt file2.txt › output.txt, но я хочу сохранить формат из file1.txt   -  person user2043160    schedule 19.11.2014


Ответы (1)


Вы можете использовать этот awk для получения этого вывода:

awk -F/ 'FNR==NR {a[$1];next} !($(NF-1) in a)' file2.txt file1.txt
blah5/blah6/content3.fits/
blah7/blah8/content4.fits/
person anubhava    schedule 19.11.2014