-3

我有一个这样的文件:

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

我想用 Letter 替换.and ,(在第一行是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 回答