- 论坛徽章:
- 23
|
回复 #1 lemboyz 的帖子
try:
test.awk
- #! /usr/bin/awk
- NR == 1 {
- s = $0
- getline
- l = length(s) < length($0) ? length(s) : length($0)
- for(i = 1; i <= l; i ++)
- if ( substr(s, i, 1) == substr($0, i, 1) )
- a[i] = substr(s, i, 1)
- else
- a[i] = ""
- next
- }
- {
- s = l
- l = length($0) < l ? length($0) : l
- if ( l < s )
- for(i = l + 1; i <= s; i ++)
- delete a[i]
- for(i = 1; i <= l; i ++)
- if ( a[i] != "" && substr($0, i, 1) != a[i] )
- a[i] = ""
- }
- END {
- for(i = 1; i<=l; i ++)
- if ( a[i] != "" )
- {
- k = i
- for(j = i; a[j] != ""; j ++ )
- b[k] = b[k] "" a[j]
- m = m < length(b[k]) ? length(b[k]) : m
- i = j
- }
- for( i in b )
- if ( length(b[i]) == m )
- print "substr($line ,"i" ,"m") = "b[i]
- }
复制代码
awk -f test.awk urfile |
|