我确定我曾经发现一个unix命令可以打印两个或多个文件中的公共行,有人知道它的名字吗?这比简单得多diff.
我正在学习文件比较awk.
我找到了如下的语法,
awk 'NR==FNR{a[$1];next}$1 in a{print $1}' file1 file2
Run Code Online (Sandbox Code Playgroud)
我无法理解这NR==FNR在什么意义?如果我尝试,FNR==NR那么我也得到相同的输出?
到底是做什么的?
这两个文件的perl单行显示行如何共同?
perl -ne 'print if ($seen{$_} .= @ARGV) =~ /10$/' file1 file2
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何显示共同的行(反向差异)?
是否有命令与diff相反?我想比较两个文件,如果两者都存在相同的东西,则创建它们的列表.我想弄清楚两个文件中存在哪些条目.
从unix终端,我们可以diff file1 file2用来查找两个文件之间的区别.是否有类似的命令来显示2个文件的相似性?(必要时允许许多管道.
每个文件都包含一个带有字符串句子的行; 它们被排序并删除重复的行sort file1 | uniq.
file1:http://pastebin.com/taRcegVn
file2:http://pastebin.com/2fXeMrHQ
输出应输出两个文件中出现的行.
output:http://pastebin.com/FnjXFshs
我可以使用python这样做,但我认为放入终端有点太多了:
x = set([i.strip() for i in open('wn-rb.dic')])
y = set([i.strip() for i in open('wn-s.dic')])
z = x.intersection(y)
outfile = open('reverse-diff.out')
for i in z:
print>>outfile, i
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Shell脚本(以及“一个衬里”)来查找大约50个文件之间的任何常见行。 编辑:注意,我正在寻找出现在所有文件中的一行
到目前为止,我已经尝试过grep grep -v -x -f file1.sp *,它将所有其他文件中的文件内容都匹配。
我也尝试过其他方法grep -v -x -f file1.sp file2.sp | grep -v -x -f - file3.sp | grep -v -x -f - file4.sp | grep -v -x -f - file5.sp...但是我相信使用要搜索为STD的文件而不是以匹配的模式进行搜索。
有谁知道如何使用grep或其他工具执行此操作?
我不在乎是否需要花一些时间来运行,我必须向大约500个文件中添加几行代码,并希望在每个文件中找到一条共同的行以将其插入“之后”(它们最初是只需来自一个文件的c&p,所以希望有一些共同之处!)
谢谢你的时间,
unix ×3
diff ×2
linux ×2
shell ×2
awk ×1
command-line ×1
file ×1
grep ×1
perl ×1
similarity ×1