假设我有两个文本文件 第一个 -
apple
orange
pineapple
banana
watermelon
第二个 -
apple
grape
orange juice
pineapple
watermelon
所以我们看到已添加葡萄,香蕉已被去除,橙色已变为橙汁。我想得到的主要结果是发生了一次变化,因为橙色已经变为橙汁。
任何帮助都将不胜感激。
答案 0 :(得分:2)
只需使用diff命令。
$ diff f1 f2
2c2,3
< orange
---
> grape
> orange juice
4d4
< banana
答案 1 :(得分:2)
perl -lne'
BEGIN{
$x = pop;
($r)= map { chomp; tr/\n/|/; qr/$_/ } do{ local $/; <> };
@ARGV = $x;
}
print "$1 has been changed to $_" if /($r)/ and $1 ne $_;
' file1 file2
输出
orange has been changed to orange juice
<强>解释强>
它在BEGIN
块中一次读取file1,删除尾随换行符,其余的替换为|
,制作正则表达式。 $r= qr/apple|orange|pineapple|banana|watermelon/
然后逐行读取file2并检查它是否与$r
正则表达式匹配。如果是,但捕获的$1
与整行不同,则输出有关它的通知。