大家好,我有几种文本文件(全部在一个目录中),格式如下:
server1.txt
Jar file 1 : md5sum : size
Jar file 2 : md5sum : size
Jar file 3 : md5sum : size
etc
所以我想要做的是将这些文件中的一个与其他文件进行比较,以便得出主文本文件中出现但未出现在其他文件中的jar
名称列表。我需要安排数据,以便在所有文件中找到差异的地方将文本文件的名称读取到stdout。
这是我到目前为止,它将读取主文本文件,并从中获取必需的字段(jar名称及其对应的md5sum)。然后循环读取所有其他文本文件,并在实际比较之前将它们放在一个数组中:
jarListFiles=(*.txt)
#only所需文件在此目录中
( cat ukv01stats.txt | while IFS=: read f1 f2 f3 f4 ; do echo "$f1 - $f2" > temp_ukv01stats.txt; done < ukv01stats.txt ; for file in ${jarListFiles[@]}; do read f1 f2 f3 f4 ; echo "$f1 - $f2" > temp_$file; done < $file ; diff temp_ukv01stats.txt $file )
但是,我得到了bash: 0: ambiguous redirect
diff: missing operand after temp_ukv01stats.txt
diff: Try diff --help' for more information.
非常感谢您的帮助,并提前感谢您花时间寻找解决方案。
答案 0 :(得分:1)
NAME
diff - compare files line by line
SYNOPSIS
diff [OPTION]... FILES
DESCRIPTION
Compare FILES line by line.
Mandatory arguments to long options are mandatory for short options too.
[...]
-r, --recursive
recursively compare any subdirectories found
所以,diff -R directory1/ directory2/
。