-3

次のようなファイルがあります。

Name Position Letter String
Bla 123 A ..B.,,,.C..
Bla 123 B ..a.,,,.C..
Bla 123 C ..b.,,,.A..

.and,を Letterに置き換えたい(最初の行はA)

最終製品:

Name Position Letter String
Bla 123 A AABAAAAACAA
Bla 123 B BBaBBBBBCBB
Bla 123 C CCbCCCCCACC

awk の考え方は、列 4 の文字を列 3 の「the」文字に置き換えることです。これには awk が正しいツールであると思いますが、文字列の文字を置き換えることに固執しています。

sed s/\(^.\{4\}\)./\\{3\}/動作しませんでした。sed は間違ったツールである可能性があります。

Awk/sed/python/perl/vi ソリューションを歓迎します。

4

2 に答える 2

8
perl -pale '$F[3]=~s/[.,]/$F[2]/g;$_=join" ",@F' file

見る

于 2012-05-04T11:24:05.433 に答える
3

を使用しないソリューションregular expressions:

   with open('in.txt') as f:
        for x in f:
            x=x.rstrip().split()
            x[-1]=x[-1].replace('.',x[-2])
            x[-1]=x[-1].replace(',',x[-2])
            print(" ".join(x))

    Name Position Letter String
    Bla 123 A AABAAAAACAA
    Bla 123 B BBaBBBBBCBB
    Bla 123 C CCbCCCCCACC
于 2012-05-04T11:24:53.920 に答える