skgm

about:Broadcast IT Engineering

Powershell: Jede zweite Zeile einer Text Datei bearbeiten

Quick ’n Dirty

In einer Textdatei, die Dateinamen incl. Pfadangabe für ein Linux System enthält, soll der Pfad in jeder zweiten Zeile editiert werden.

D.h.:

  • Immer wenn Modulo 2 true liefert (also in jeder zweiten Zeile) muss die Zeile bearbeitet werden.
  • Der Pfad muss anhand des „/“ zerstückelt werden.
  • Das entstehende Array $var enthält alle Einzelteile des Pfads ohne die „/“.
  • Die Stelle 0 im Array wird mit einem anderen Ordnernamen überschrieben.
  • Der Pfad wird neu zusammen gebaut.
  • Die Zeile wird in die Ausgabe-Textdatei geschrieben.
  • Die Hilfsvariable für die Zeilennummer wird hochgezählt.
  • Bei ungeraden Zeilennummern wird die Zeile 1zu1 in die Ausgabe-Textdatei geschrieben.

param (
[string]$filein,
[string]$fileout,
[string]$line,
[int]$i = 0
)

foreach ($line in (gc $filein)) {
if ($i %2) {
$var = $line.Split(„/“)
$var[0] = „anderer_ordner“
$outline = „/“+$var[0]+“/“+$var[1]+“/“+$var[2]
$outline | out-file $fileout -append
$i++
}

else {
$line | out-file $fileout -append
$i++
}
}