在某个关键字后的多个文本文件中用逗号查找和替换空格

Find and replace spaces by commas in multiple text files after a certain keyword

我有一个包含具有以下结构的文本文件的文件夹:

@ATTRIBUTE dynamics_rms_Mean NUMERIC
@ATTRIBUTE dynamics_rms_Std NUMERIC
@ATTRIBUTE dynamics_rms_Slope NUMERIC
@ATTRIBUTE dynamics_rms_PeriodFreq NUMERIC
@ATTRIBUTE dynamics_rms_PeriodAmp NUMERIC
@ATTRIBUTE dynamics_rms_PeriodEntropy NUMERIC

@DATA
9.749956e-01 2.257056e-01 1.667380e-01 NaN NaN 9.706193e-01

我想使用 Sublime Text 为所有这些文本文件查找并替换 @DATA 下面的 "space" 个字符,但保留以 @ATTRIBUTE.

开头的行

我找到了一种方法 select 文本文件中的所有空格,但我不知道如何 select 仅 @DATA 之后的空格并将它们替换为每个文件(使用ctrl+shift+f)。

我将不胜感激有关如何解决此问题的任何建议,在此先感谢。

您可以使用以下正则表达式替换(请注意模式末尾有文字 space):

(?:^@DATA|\G(?!^))\K([\s\S]*?) (?!$)

并替换为,

替换后:

你可以使用这个search/replace:

搜索:(?:\G(?!^)|^@DATA\R)[^ ]+\K[ ]

替换:,

图案详情:

(?:         # non-capturing group
    \G      # anchor for the position of the last match
    (?!^)   # not at the start of a line
  |         # OR
    ^       # start of a line
    @DATA
    \R      # any newline sequence
)          
[^ ]+       # one or more characters that are not a space
\K          # discards all on the left from the match result
[ ]         # a space

要处理连续几行数据并在第一个空行停止,需要将模式更改为:

(?:\G(?!^)|^@DATA\R)[^\n ]+(?:\R[^\n ]+)?\K[ ]