我有一个文件,其中有很多文本,其格式如下:
SOME STRING1 some text in the same line SOME STRING2
lot of text in multiple lines~
我想实现什么?
- 我需要提取
SOME STRING1
和符号~
之间的每个文本块 - 文件名应为
STRING1
和STRING2
之内的文本。
我能够提取文本块,但是我不知道如何根据下一个模式将它们写入单独的文件中。
$txtfile = gc -Raw '.\mytxt.txt'
$output = $txtfile | select-string -AllMatches '(?i)some\s+string1(.|\n)*?~'
$output.Matches
在“匹配”上的每个循环中寻找值的A都会给出匹配的模式。但是我无法弄清楚如何通过再次查看匹配的模式以找到具有SOME STRING 1和SOME STRING 2的文本来将每个匹配的模式写入单独的文件。
以下是示例文本:
SOME STRING1 bqo_cha.paliuni_cdr SOME STRING2
paliunipaliuni_cdr.bgr,paliuni_cdr.vdr
KEY jaja.paliuni_cdr~
SOME STRING1 bqo_cha.ytr SOME STRING2
SOME STRING1 bqo_cha.ytr SOME STRING2 paliuni KEY jaja.ytr ~
SOME STRING1 bqo_cha.unipali_bfrentmng SOME STRING2
paliuniunipali_bfrentmng.ngt
KEY jaja.unipali_bfrentmng~
SOME STRING1 bqo_cha.unipali_iliwi SOME STRING2
paliuniunipali_iliwi.iliwi_jhwity
KEY jaja.unipali_iliwi~