Shell 用于两个文件的Diff命令并输出到第三个文件
在shell脚本中使用diff命令比较两个文件时,我遇到了一个小问题。假设我有两个ascii文件,file1.txt和file2.txt,内容如下: file1.txtShell 用于两个文件的Diff命令并输出到第三个文件,shell,diff,csh,Shell,Diff,Csh,在shell脚本中使用diff命令比较两个文件时,我遇到了一个小问题。假设我有两个ascii文件,file1.txt和file2.txt,内容如下: file1.txt blah/blah2/content.fits/ blah3/blah4/content2.fits/ blah5/blah6/content3.fits/ blah7/blah8/content4.fits/ file2.txt content.fits content2.fits 现在,我想根据.fi
blah/blah2/content.fits/
blah3/blah4/content2.fits/
blah5/blah6/content3.fits/
blah7/blah8/content4.fits/
file2.txt
content.fits
content2.fits
现在,我想根据.fits扩展名对这两个文件进行比较,但将输出写入一个ascii文件,将格式保留在file1.txt中,即在这个特定示例中,比较这两个文件后的输出文件应给出:
blah5/blah6/content3.fits/
blah7/blah8/content4.fits/
有什么想法吗?您可以使用此awk获得该输出:
awk -F/ 'FNR==NR {a[$1];next} !($(NF-1) in a)' file2.txt file1.txt
blah5/blah6/content3.fits/
blah7/blah8/content4.fits/
你到底想要实现什么?diff命令将显示两个不相同文件的内容。在您的示例中,blah/blah/content.fits/和content2.fits不会被视为共同点。首先检查diff命令。我想你更喜欢模式匹配,而不是diff。grep-vwf file2.txt file1.txt是你想要的吗?我想比较两个文件,然后将差异写入第三个文件,类似于diff file1.txt file2.txt>output.txt,但我想保留file1.txt的格式