从列中删除字符串

时间:2014-04-22 22:36:03

标签: string perl

我需要从表中删除特定字符串,如下所示:

1->KOM0001 column2 column3...
2->KOM0002 column2 column3...
.  
10->KOM00011 column2 column3...  
.  
.  
156->KOM0159 column2 column3...

等等。我想删除其中任何一个:KOM000KOM00KOM0KOM如果它们出现在第一列中并用空格替换它们。我应该用Perl来实现这个目标(不是必须的),但我是你能想象到的最新手,而且我完全陷入困境。

我应该补充说,这个表很大,它有大约1000行和超过10万列。

不幸的是,我的问题还没有解决,但这是必要的第一步,所以我不再提出问题了。

2 个答案:

答案 0 :(得分:1)

你可以澄清这一点,但假设它是一个文件:

perl -i -pe 's/^\d+->\K(KOM0{0,3})/q{ }x length($1)/e' file

在一行开头附近查找字符串,并用空格替换每个字符。

答案 1 :(得分:0)

你可以尝试:

awk '{sub(/KOM0*/,"",$1)}1' file