how to make a script for this case?

Bengt Richter bokr at oz.net
Fri Aug 16 06:38:26 CEST 2002


On 15 Aug 2002 10:12:46 -0700, hhhnnn_hk99 at yahoo.com.hk (D99) wrote:

>hi
>
>i have a question 
>I am using linux platform and have a file which contain the 
>following data 
>
>#####################################################
>a:admin99
>b:admin at company.com
>password:123321
>e:456789
>
>b:peter at company.com
>e:1234155
>password:44587
>a:peter123
>
>
>b:tom at company.com
>a:tom22
>password:4sfsfsf7
>e:1sfsfs4155
>
>
>#####################################################
>and i want to run a shell script to search and sort to as
>below file
>
>account    password       alais        
>######################################################
>admin99     123321       admin
>peter123    44587        peter
>tom22       4sfsfsf7     tom
>
>########################################################
>
>would anyone can help me ? thanks a lot

I am using version 2.2. This is first hack:

--< h3n3hk.py >---------------------------------
import sys
def h3n3hk(f=sys.stdin):
    d = {}; out = []
    while 1:
        line = f.readline()
        if line.strip()=='':
            if line and not d: continue
            out.append('%-12s%-12s%-12s' % (
                d.get('a','??'),
                d.get('password','??'),
                d.get('b','??').split('@')[0]
            ))
            if line == '': break
            d={}
        else:
            ls = line.split(':', 1)
            if len(ls)==2 and ls[0] in ['a', 'b', 'password']:
                d[ls[0]] = ls[1].strip()
    out.sort()
    out.insert(0,'%-12s%-12s%-12s' % ('account','password','alias'))
    out.insert(1,'%-12s%-12s%-12s' % ('-------','--------','-----'))
    for line in out:
        print line

if __name__=='__main__':
    import sys
    try:
        h3n3hk(file(sys.argv[1]))
    except IOError, e:
        print e
    except:
        print 'Usage: h3n3hk.py file'
--<EOF>-----------------------------------------

[21:41] C:\pywk\junk>type h3n3hk.txt
a:admin99
b:admin at company.com
password:123321
e:456789

b:peter at company.com
e:1234155
password:44587
a:peter123


b:tom at company.com
a:tom22
password:4sfsfsf7
e:1sfsfs4155

[21:42] C:\pywk\junk>h3n3hk.py
Usage: h3n3hk.py file

[21:42] C:\pywk\junk>h3n3hk.py h3n3hk.txt
account     password    alias
-------     --------    -----
admin99     123321      admin
peter123    44587       peter
tom22       4sfsfsf7    tom

Regards,
Bengt Richter



More information about the Python-list mailing list