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

マルチパスの正規表現をまとめようとするよりもはるかに簡単です。この正規表現は、正しく処理されるまでに数回壊れる可能性が高く、ソートされるデータに依存し、最後にすべてを再フォーマットするために 2 番目の正規表現が必要になる場合があります。 ..

于 2010-02-11T21:45:25.993 に答える
0

jEdit(またはNotepad ++、または正規表現を介して検索/置換できる他のエディターにロードします。

ステップ 1 は、区切り文字がタブであることを確認することです。

次に、検索します

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

そしてそれを

$1\t$2,

一致するものが見つからなくなるまで、すべて検索/置換を繰り返します。

于 2010-02-11T21:47:39.010 に答える