我有以下要求。我需要列出Golden Gate prm文件中的所有表格。我想使用正则表达式从字符串块中提取列表。数据格式如下所示:
MAP AFF_INTEGRATION.SFDC_ACCOUNT , Target dbo.AFF_INTEGRATION_SFDC_ACCOUNT_EXCEPTION ,
--MAP AFF_INTEGRATION.SFDC_USER , Target er_service.dbo.AFF_INTEGRATION_SFDC_USER ,
我希望数据采用表格格式:
AFF_INTEGRATION.SFDC_ACCOUNT dbo.AFF_INTEGRATION_SFDC_ACCOUNT_EXCEPTION
注意:应忽略包含--
的行。
修改:更新了问题中的文字输入文字。所以基本上我必须在MAP
之后分割内容并在,
结束,对Target
也是如此。
答案 0 :(得分:0)
只需读取输入文件,忽略以--
开头的行,拆分并重新连接其余行,然后将结果写回文件:
Get-Content 'C:\path\to\input.txt' |
? { $_ -notmatch '^(\s*$|--)' } |
% { $_ -split '\s*,\s*' -join "`t" } |
Set-Content 'C:\path\to\output.txt'
条件$_ -notmatch '^\s*$'
仅用于跳过空白行。如果您的输入文件中没有空行,则可以将其删除。
编辑:第二个想法你也可以替换分隔符,而不是分割和重新连接这些行:
Get-Content 'C:\path\to\input.txt' |
? { $_ -notmatch '^(\s*$|--)' } |
% { $_ -replace '\s*,\s*', "`t" } |
Set-Content 'C:\path\to\output.txt'