Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Inhalte vieler txt Dateien ändern

Mitglied: DerChriss

DerChriss (Level 1) - Jetzt verbinden

22.10.2013 um 21:30 Uhr, 1868 Aufrufe, 7 Kommentare, 1 Danke

Hallo Forumsmitglieder,

aktuell stehe ich etwas auf dem Schlauch....

folgendes Problem
ich habe einige Tausend txt Dateien mit Protokollen.
Die Dateien befinden sich alle in einem Ordner.

In den Protokollen werden ungüstigerweise komplette Namen (Vorname Nachname) genannt.
Der Vorname Nachname soll in allen Protokolldateien abgeändert werden in "Mitarbeiter"

Mein Gedanke ist dies in Power Shell umzusetzen
sprich ich habe eine Datei mitarbeiter.dat in welcher die entsprechenden Mitarbeiter mit Vorname Nachname zeilenweise eingetragen sind
und das Script liest sich die Daten ein und ändert in allen Protoklldateien den entsprechenden Namen in "Mitarbeiter" ab.

Einzelnes Ändern würde zwar gehen,
Get-ChildItem *.txt | ForEach-Object {Get-Content $_ | Out-String | ForEach-Object {$_.Replace("Hans Meier","Agent")} | Set-Content $_}
aber es kommen auch immer noch rund 500 Namen in Betracht, welche in den Dateien stehen.

Klasse währe zudem eine Möglichkeit, nach dem Anpassen der Datei diese als neue Datei zu speichern
und wenn es in einer Datei keine Änderung gab, dies im Dateinamen zu vermerken.

Ich danke vielmals für eure Mithilfe

Chriss
Mitglied: colinardo
23.10.2013, aktualisiert um 16:16 Uhr
Hallo Chriss,
kein Problem wenn du mit zwei ineinander verschachtelten FOR-Schleifen arbeitest. Die äußere Schleife geht alle Dateien durch und die innere für jede Datei alle Namen:
In Zeile 1 musst du den Pfad und den Filter für deine Dateien angeben, Zeile 2 gibt den Ausgabepfad für die korrigierten Dateien an(ohne Slash am Ende) und in Zeile 3 gibst du die Datei an die die Namen enthält (einer pro Zeile).
01.
$sourceFiles = dir "C:\Temp\source\*.txt" | ?{$_.PSIsContainer -eq $false} 
02.
$outdir = "C:\Temp\target" 
03.
$namesList = get-content "C:\temp\names.txt" 
04.
 
05.
foreach($file in $sourceFiles){ 
06.
    $fcontent = gc $file.FullName 
07.
    $found = $false 
08.
    foreach($name in $namesList){ 
09.
        if ($name -ne "" -And $fcontent -cmatch $name){ 
10.
            $found = $true 
11.
            $fcontent = $fcontent | %{$_.Replace($name,"Mitarbeiter")} 
12.
13.
14.
    if ($found -eq $true){ 
15.
        $fcontent | Set-Content "$outdir\$($file.BaseName)_corrected$($file.Extension)" -Force 
16.
    }else{ 
17.
        $file | Copy-Item -Destination $outdir -Force 
18.
19.
}
Sollte in einer Datei einer oder mehrere der Namen gefunden werden werden diese durch "Mitarbeiter" ersetzt und die Datei wird durch den Anhang _corrected im Dateinamen ergänzt und im Zielordner abgespeichert. Wurde kein Name gefunden wird die Datei einfach so wie sie ist in den Zielordner kopiert.

Grüße Uwe
Bitte warten ..
Mitglied: Endoro
23.10.2013 um 09:10 Uhr
Hi,
kann man auch mit sed for Windows machen:
01.
sed -r "s#.*#s/\\<&\\>/MITARBEITER/g#" mitarbeiter.txt|sed -i.bak -f - protokoll*.lst
lg.
Bitte warten ..
Mitglied: DerChriss
23.10.2013, aktualisiert um 15:21 Uhr
super.. danke für die schnelle hilfe.

beim ersetzen erschein leider noch ein Fehler und die Namen werden leider auch nicht ersetzt

Method invocation failed because [System.Object[]] doesn't contain a method named 'Replace'.
At .ps1:11 char:46
+ $fcontent = $fcontent.Replace <<<< ($name,"Mitarbeiter")
+ CategoryInfo : InvalidOperation: (Replace:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

in anderen scripten funktioniert die Replace Methode

Danke nochmals
Bitte warten ..
Mitglied: colinardo
23.10.2013 um 15:45 Uhr
Ah OK, dann hast du wahrscheinlich eine ältere Powershell-Version. Habe es oben im Code dahinhgehend korrigiert ...
Bitte warten ..
Mitglied: DerChriss
23.10.2013 um 15:47 Uhr
ja
hab hier kleider nur die v2 zu verfügung
Bitte warten ..
Mitglied: colinardo
23.10.2013 um 16:14 Uhr
Zitat von DerChriss:
ja
hab hier kleider nur die v2 zu verfügung
s. geänderter Code oben ... damit geht's auch in Powershell 2.0
Bitte warten ..
Mitglied: DerChriss
23.10.2013 um 16:14 Uhr
super
ich danke dir vielmals

nun läufts durch.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Inhalt von XML-Dateien ändern
gelöst Frage von Kedi123Batch & Shell14 Kommentare

Hallo zusammen, wir haben täglich viele XML-Dateien, die unter anderem jeweils eine Festplattengröße in Byte enthalten (Zeile 16). Um ...

VB for Applications

Inhalt einer Textbox in eine .txt Datei schreiben

gelöst Frage von Just4fun1990VB for Applications4 Kommentare

Hallo Administrator.de User, ich habe jetzt schon sehr lange gesucht und finde leider nichts. Hier allerdings habe ich gute ...

Batch & Shell

PDF Dateien nach Inhalt einer TXT Datei umbenennen

gelöst Frage von Chris1979Batch & Shell2 Kommentare

Hallo zusammen, ich stehe gerade vor einem Problem und hätte eine Frage zur Umsetzung. Ich bin mit der Batch ...

Microsoft Office

Inhalte vieler excel dateien auslesen und als Liste wiedergeben

gelöst Frage von tw3akerMicrosoft Office13 Kommentare

Hallo miteinander, Habe Frage: wie kann ich mit einer Excel Datei einen Ordner und dessen Unterordner auslesen. Die Dateien ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 19 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 20 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

LAN, WAN, Wireless
Gigabit-Lan mit zwei 4-adrigen Kabeln?
Frage von ArvedirmerLAN, WAN, Wireless11 Kommentare

Ich habe folgendes Problem: Ich betreue eine kleine Firma die sich im 1.Stock eines Gebäudes befindet. Es existiert ein ...

Router & Routing
Routing Probleme mit Firewall
gelöst Frage von mb1811Router & Routing9 Kommentare

Hallo Zusammen! Ich habe folgende Problematik, wo ich ein wenig Input benötige: Gem. angehängter Skizze habe ich folgenden Stand: ...