Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

windows, sed, grep - suchen und ersetzen in dateien batch im verzeichnis rekursiv

Frage Entwicklung Batch & Shell

Mitglied: micneu

micneu (Level 2) - Jetzt verbinden

19.04.2009, aktualisiert 00:36 Uhr, 15573 Aufrufe, 4 Kommentare

Hallo Leute,

Ich benötige euere unterstützung.
Ich muß in einigen *.ini Dateien nach bestimmten wörtern suchen und die *.ini Dateien liegen alle in verschachtelten verzeichnissen.
Das suchen und erstezen will ich in einerm BATCH erledigen das es auf ca. 50 Computern gemacht werden muß ;-(
Das ganze sind windows rechner.
Habt ihr eine Idee wie ich es mit Board mitteln am windows rechner machen kann, habe auch versucht mit sed und grep zu machen.

habe versucht mit sed und grep aber kein erfolg.

grep:

damit bekomme ich schonmal den pfad der dateien:

01.
 
02.
grep -r -l FileMax= *
sed:

hiermit bekomme ich wenn ich im verzeichnis der datei bin die richtige zeiler ausgegeben:

01.
 
02.
sed -n "/40000/p" *.ini
habe es versucht mit einer for schleife:

01.
 
02.
for /R %cd% %f in (*.ini) do sed -n "/40000/p %f
oder mit einer kombination von GREP und SED:

01.
 
02.
grep -r -l FileMax= B* | sed -n "/FileMax=/p"
nur bekomme ich keine ausgabe.

wie könnte ich sowas "einfach" lösen????

hoffe mir kann jemand helfen.
Mitglied: Biber
19.04.2009 um 01:32 Uhr
Moin micneu,

ich bin noch etwas unsicher, ob Du
  • Dich im Moment auf das Suchen der relevanten beschränken willst
  • oder tatsächlich bestimmte Zeilen ersetzen willst
  • und falls ja, ob Du das per Cmd-Prompt oder per Batch abfackeln willst.
Irgenwie passen die Ankündigungen in Deinem Beitrag (Suchen und Ersetzen per Batch) und die Beispielzeilen (Anzeigen der Fund-Zeilen mit Zeilennummer per CMD-Line) nicht so ganz übereinander.

Also: Kompromissangebot.
Wenn Du vom CMD-Prompt aus mit einer Kombination von FOR /R und Sed diese FileMax-Einträge ersetzen willst, dann
01.
FOR /R . %f in (*.ini) do Sed -e 's/FileMax=.*/FileMax=1234/g' "%f"
Ungetestet, aber soll gemäß Plan bewirken
FOR /R . %f in (*.ini) do
---> Allen *.ini-Dateien, im folgenden %f genannt, unterhalb des aktuellen Verzeichnisses, tue folgendes an
Sed -e 's/FileMax=.*/FileMax=1234/g' "%f"
--> -e editiere
--> und zwar switche/ersetze alle Strings "FileMax=beliebige Zeichen" durch "FileMax=1234
-->und zwar in allen Dateien "%f", die ich in Hochkomma gesetzt habe, falls Leerzeichen in Pfad oder Dateinamen sind.

Falls Du mehrere (verschiedene) Zeilen ersetzen willst, dann solltest Du die ganzen einzelnen AlteZeile/NeueZeile-Anweisungen in eine separate Textdatei schreiben und sed mit Parameter -f Textdateiaufrufen.

Grüße
Biber
Bitte warten ..
Mitglied: miniversum
19.04.2009 um 10:02 Uhr
Wenn es mit Boardmitteln erledigt werden soll kannst du aber sed nicht verwenden. Oder ist das auf allen Rechnern vorhanden? Sonst entweder das sed umgehen mit Boardmitteln oder als exe mitliefern.
Bitte warten ..
Mitglied: Biber
01.05.2009 um 18:21 Uhr
Moin micneu,

besteht Deinerseits noch Interesse an diesem Beitrag oder soll ich den zu den anderen ungeklärten Fällen umbetten?

Grüße
Biber
Bitte warten ..
Mitglied: micneu
04.05.2009 um 17:27 Uhr
Danke ich habe die Lösung.....

FOR /R . %%f in (*ons.ini) do Sed -i.bak "s/FileMax=200000/FileMax=40000/g;s/Preserved=1Preserved=0/g" "%%f"


danke .....
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Windows 10 per GPO mundtot machen

(5)

Anleitung von Looser27 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst XML-Datei: Pfade suchen, verlinkte Dateien kopieren und Pfade ändern (4)

Frage von ELEVATOR zum Thema Batch & Shell ...

Batch & Shell
Suchen, Ersetzen und Entfernen von Dateiinhalten auf Textbasis (1)

Frage von DanteManor zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch zum suchen und verschieben von Dateien (5)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
E-Mail
gelöst BLAT zum Mail versenden. Fehler für mich nicht lösbar (24)

Frage von wlancuw zum Thema E-Mail ...

Server
NAS SAMBA Login (16)

Frage von Marabunta zum Thema Server ...

Windows Server
Window Server 2008 R2 startet nicht nach Update (9)

Frage von keytechnik zum Thema Windows Server ...

Windows 10
Netzwerkdrucker auf anderen Rechner übertragen (9)

Frage von lord-icon zum Thema Windows 10 ...