问个问题,环境是Solaris有一个文本文件,test.dat
#cat test.dat
3453343|32444,asd,42,345sa,asda5445,asdsa|,asdaas,,asd,,,asdadsad||sadad,sad~@%asdasd32432|
232|as2d,421,3452sa,asda2544,asd121sa,erasdaaaas,asdasdadsadsadad,sad~|@%asdasdasdsda|
ab2|aspp2d,ass,23,aaa,bbb,ddsdd,asdasdadsadsadad,sad~|@%asdasd
……
这么一个文件,格式是这样的,这个文件每行都是7列,
第一列为第一个'|'之前的数据,
第二列为第一个'|'到第一个','之间的数据
第三列为第一个','到第二个','之间的数据
第四列为第二个','到第三个','之间的数据
第五列为第三个','到第四个','之间的数据
第六列为第四个','到第五个','之间的数据
之后,本行数据剩下的都属于第七列
所以上面文件的数据应该是:
3453343 32444 asd 42 345sa asda5445 asdsa|,asdaas,,asd,,,asdadsad||sadad,sad~@%asdasd32432|
232 as2d 421 3452sa asda2544 asd121sa erasdaaaas,asdasdadsadsadad,sad~|@%asdasdasdsda|
ab2 aspp2d ass 23 aaa bbb ddsdd,asdasdadsadsadad,sad~|@%asdasd
……
现在需要对原始的test.dat做2个处理
1.去掉第一列内容,得到的文件应该是:
32444,asd,42,345sa,asda5445,asdsa|,asdaas,,asd,,,asdadsad||sadad,sad~@%asdasd32432|
as2d,421,3452sa,asda2544,asd121sa,erasdaaaas,asdasdadsadsadad,sad~|@%asdasdasdsda|
aspp2d,ass,23,aaa,bbb,ddsdd,asdasdadsadsadad,sad~|@%asdasd
……
2.剩余的6列每列都有长度要求,长度分别为9,12,7,8,15,300,对于每列的字段数据采用左对齐,不够长度的在后面用空格(为了容易看的方便,我用'M'代替空格表示)补齐。所以应该是下面这样的结果:
32444MMMM,asdMMMMMMMMM,42MMMMM,345saMMM,asda5445MMMMMMM,asdsa|,asdaas,,asd,,,asdadsad||sadad,sad~@%asdasd32432|MMMM(M太多,我不写那么多了)……
as2dMMMMM,421MMMMMMMMM,3452saM,asda2544,asd121saMMMMMMM,erasdaaaas,asdasdadsadsadad,sad~|@%asdasdMMMM……
aspp2dMMM,assMMMMMMMMM,23MMMMM,aaaMMMMM,bbbMMMMMMMMMMMM,ddsdd,asdasdadsadsadad,sad~|@%asdasdMMMMMM…………
各路大仙,还请施展绝技帮忙看看,谢谢。
[ 本帖最后由 sea_soft 于 2009-4-20 20:34 编辑 ] |