回そうとする
a: 1, 2, 3
a: a, b, v
b: 5, 6, 7
b: 10, 1543, 1345
b: e, fe, sdf
cd: asdf, asdfas dfasdfa,asdfasdfa,afdsfa sdf
e1: asdfas, dafasd, adsf, asdfasd
e1: 1, 3, 2
e1: 9, 8, 7, 6
の中へ
a: 1, 2, 3
a, b, v
b: 5, 6, 7
10, 1543, 1345
e, fe, sdf
cd: asdf, asdfas dfasdfa,asdfasdfa,afdsfa sdf
e1: asdfas, dafasd, adsf, asdfasd
1, 3, 2
9, 8, 7, 6
したがって、行はソートされます。連続する行が、区切り文字 (ここではコロン (およびそれに続く空白)) を含む / までの同じ文字シーケンスで始まる場合、最初のインスタンスのみが保持され、残りのすべての行も同様に保持されます。同一の文字シーケンスで始まる最大で約 12 行 (半行) の行が存在する可能性があります。入力は約 4,500 行を保持します…</p>
TextWrangler で試してみました。
検索パターン
^([[:alnum:]]+): (.+)\r((\1:) (.+)\r)*
正しく一致し、置換もありません
\1:\t\2\r\t\3\r
または
\1:\t\2\r\t\4\r
探しているものに近づくことができます。
検索パターン
^(.+): (.+)\r((?<=\1:) (.+)\r)*
後読みが固定長でないため拒否されます。- 確かではありませんが、とにかく正しい方向に進んでいます。
テキストファイル内の同じ項目で始まる行をマージする方法を見て 、エレガントな(たとえば、1つの検索パターン、1つの置換、1回実行)ソリューションがあるかどうか疑問に思います。
一方で、ネットを検索するのに適切な質問を思いつくことができないかもしれません. あなたがよく知っているなら、私を正しい方向に向けてください.
残りの行を整列させておくことは、もちろんおまけです…</p>
お時間をいただきありがとうございます。