文件一-
aaabaaa
文件 b-
aaaaaa
请求输出样本-
aaa-aaa
*- 表示缺少一个字母
如何使用基本的 unix 命令或 shellscript 或 sql 或 4gl 代码来做到这一点?(只需要任何 1 )
像这样的东西应该可以工作(文件顺序非常重要,它将第一个文件的第一行与第二个文件的第一行进行比较):
awk '
NR==FNR {
a[NR]=$0
next
}
{
delete ary
delete ary2
x=y=len=i=k=0
x=split($0,ary,"");
y=split(a[FNR],ary2,"");
len=x>y?x:y;
while(len>0) {
if (ary[++i]==ary2[++k]) {
printf ary[i]
}
else
{
printf "-"
i--
}
len--
}
print ""
}' file1 file2
$ cat file1
aaabaaa
abcdefabc
aaabbbccc
$ cat file2
aaaaaa
abcabc
acacacac
aaa-aaa
abc---abc
a-----c--