0

我有一个这样的列表:

GTPYANJ         695848
GTPYANJ         27811
FPORTAL3        432532

我想用正则表达式把它变成这个:

GTPYANJ,695848,27811
FPORTAL3,432532

建议?

4

2 回答 2

0

Perl 单行:

perl -e 'while(<>) { chomp; ($tag, $num) = split /\s+/; $tmp{$tag} .= ",$num"; } foreach $t (sort keys %tmp) { print $t.$tmp{$t}."\n" } '  myfile.txt

比尝试将多遍正则表达式拼凑在一起要容易得多,因为它很可能会在你正确之前中断几次,这取决于正在排序的数据,并且可能需要第二个正则表达式来重新格式化最后的所有内容。 ..

于 2010-02-11T21:45:25.993 回答
0

加载到jEdit(或Notepad ++,或其他可以通过正则表达式搜索/替换的编辑器。

第 1 步是确保分隔符是制表符。

然后,搜索

^(.*)\t(.*)\n\1

并将其替换为

$1\t$2,

重复查找/全部替换,直到找不到更多匹配项。

于 2010-02-11T21:47:39.010 回答