【发布时间】:2013-06-26 01:27:27
【问题描述】:
文件a-
aaabaaa
文件 b-
aaaaaa
请求输出样本-
aaa-aaa
*- 表示缺少一个字母
如何使用基本的 unix 命令或 shellscript 或 sql 或 4gl 代码来做到这一点? (只需任意 1 个)
【问题讨论】:
文件a-
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--
【讨论】: