Я прочитал много тем, но не решил свою проблему, поэтому создал новую топи c.
У меня есть следующие файлы:
Файл 1:
1
2
3
ABS START
4
5
6
Файл 2:
7
8
9
ABS END
10
11
12
Я хочу получить контент между ABS START - ABS END. Поскольку они находятся в разных файлах, поэтому следующая команда не работает
$content = get-content -raw file*.txt | select-string -allmatches '(?smi)ABS START.*ABS END'
$content.matches | foreach {$_.value}
Использование для l oop для чтения построчно кажется невозможным. потому что весь файл более 2 миллионов строк. Я пытался таким образом, но это заняло несколько дней, но не окончательно sh.
Это мой код для l oop. Он может работать с несколькими файлами, но когда я запускаю для всех файлов, кажется, что я не могу закончить sh
$Log = type file*
for ($i=1; $i -le $Log.Count; $i++){
$Line = $Log[$i]
if($Line -match "ABS START"){
for ($j = $i; $j -le $Log.Count; $j++){
$LineJ = $Log[$j]
if($LineJ -match "ABS END"){
$i = $j
break
}
else{
$Log[$j] >> $Result
}
}
}
}
Нужна ваша помощь, спасибо всем