如果行不以 : 使用 Powershell 开头,则删除换行符
Remove line break if line does not start with : with Powershell
我尝试丰富 MT940 文件。如果文件的一部分如下所示:
:86:Mitsubishi Co Ltd
1-19, Higashi 88
MHCBJPJTXXX
SCN123
:61:2202280228C211619,64NMSCSWEEP A/C 555603
我希望它看起来像这样:
:86:Mitsubishi Co Ltd 1-19, Higashi 88 MHCBJPJTXXX SCN123
:61:2202280228C211619,64NMSCSWEEP A/C 555603
所以如果不是以 :
我可以删除以 : 开头的换行符
(Get-Content "filename" -Raw) -replace '\r?\n:' -split '\r?\n' |
Set-Content "filename"
但如果它不是以 :.
开头,我就无法删除换行符
这应该有效:
(Get-Content path/to/file -Raw) -replace '\r?\n(?!:)', ' ' |
Set-Content path/to/file
以提供的文本为例:
@'
:86:Mitsubishi Co Ltd
1-19, Higashi 88
MHCBJPJTXXX
SCN123
:61:2202280228C211619,64NMSCSWEEP A/C 555603
'@ -replace '\r?\n(?!:)', ' '
# Results in:
:86:Mitsubishi Co Ltd 1-19, Higashi 88 MHCBJPJTXXX SCN123
:61:2202280228C211619,64NMSCSWEEP A/C 555603
有关说明,请参阅 https://regex101.com/r/EwbqwR/1。
我尝试丰富 MT940 文件。如果文件的一部分如下所示:
:86:Mitsubishi Co Ltd
1-19, Higashi 88
MHCBJPJTXXX
SCN123
:61:2202280228C211619,64NMSCSWEEP A/C 555603
我希望它看起来像这样:
:86:Mitsubishi Co Ltd 1-19, Higashi 88 MHCBJPJTXXX SCN123
:61:2202280228C211619,64NMSCSWEEP A/C 555603
所以如果不是以 :
我可以删除以 : 开头的换行符
(Get-Content "filename" -Raw) -replace '\r?\n:' -split '\r?\n' | Set-Content "filename"
但如果它不是以 :.
开头,我就无法删除换行符这应该有效:
(Get-Content path/to/file -Raw) -replace '\r?\n(?!:)', ' ' |
Set-Content path/to/file
以提供的文本为例:
@'
:86:Mitsubishi Co Ltd
1-19, Higashi 88
MHCBJPJTXXX
SCN123
:61:2202280228C211619,64NMSCSWEEP A/C 555603
'@ -replace '\r?\n(?!:)', ' '
# Results in:
:86:Mitsubishi Co Ltd 1-19, Higashi 88 MHCBJPJTXXX SCN123
:61:2202280228C211619,64NMSCSWEEP A/C 555603
有关说明,请参阅 https://regex101.com/r/EwbqwR/1。