试图转身
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
因此,行已排序。如果连续的行以相同的字符序列开始,直到/包括一些分隔符(这里是冒号(以及它后面的空格)),则只应保留第一个实例 - 所有行的其余部分也应保留。以相同的字符序列开头的行可能多达十几行(半行)。输入包含大约 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)*
由于后视不是固定长度而被拒绝。- 不确定,但无论如何它都会朝着正确的方向发展。
查看 如何合并文本文件中以相同项目开头的行, 我想知道是否有一个优雅的(比如:一种搜索模式、一种替换、运行一次)解决方案。
另一方面,我可能只是无法提出正确的问题来搜索网络。如果您知道得更好,请指出我正确的方向。
保持其余行对齐当然是锦上添花……</p>
感谢您的时间。