我有一个这样的清单:
GTPYANJ 695848
GTPYANJ 27811
FPORTAL3 432532
我想用正则表达式把它变成这个:
GTPYANJ,695848,27811
FPORTAL3,432532
建议?
答案 0 :(得分:0)
Perl one-liner:
perl -e 'while(<>) { chomp; ($tag, $num) = split /\s+/; $tmp{$tag} .= ",$num"; } foreach $t (sort keys %tmp) { print $t.$tmp{$t}."\n" } ' myfile.txt
比试图将多遍正则表达式蹒跚而行很容易,这种正则表达式在你做对之前很可能会破坏几次,这取决于正在排序的数据,并且可能需要第二个正则表达式来重新格式化所有内容结束......
答案 1 :(得分:0)
加载到jEdit(或Notepad ++,或其他可通过正则表达式搜索/替换的编辑器。
步骤1是确保分隔符是一个标签。
然后,搜索
^(.*)\t(.*)\n\1
并将其替换为
$1\t$2,
重复查找/替换所有内容,直到找不到更多匹配项。