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 Mittels SED Text ersetzen in Anführungszeichen

Mitglied: nekron

nekron (Level 1) - Jetzt verbinden

24.08.2019, aktualisiert 08:38 Uhr, 411 Aufrufe, 9 Kommentare

Moin …

bin nicht wirklich der SED/regex Mensch, vielleicht kann mir jemand auf die Schnelle Helfen

ich habe Quelldateien in denen Texte massiv ersetzt werden sollen, stehen alle in Anführungszeichen.

"ABC" -> "DEF"
"mit ABC den Text ersetzen" -> "mit DEF den Text ersetzen"

steht der Text nicht in Anführungszeichen soll dieser auch nicht ersetzt werden.
also

ABC -> ABC
mit..ABC.. -> mit..ABC..

kann ich dies mittels SED lösen ? SED dann mittels Script auf alle Dateien anzuwenden ist ja nicht das Problem, nur der SED Syntax

Danke euch & Gruss aus dem Urlaub
Mitglied: Lochkartenstanzer
LÖSUNG 24.08.2019, aktualisiert um 08:33 Uhr
Moin,

Zitat von nekron:

"ABC" -> "DEF"
"mit ABC den Text ersetzen" -> "mit DEF den Text ersetzen"

kann ich dies mittels SED lösen ?

Ja! Was ist dss Problem?

sed -e "s:ABC:DEF:g"  datei.txt
Da gibt's Tutorials.

lks

PS: Die Anführungszeichen stören nicht wirklich.
Bitte warten ..
Mitglied: nekron
24.08.2019, aktualisiert um 08:39 Uhr
Mein Problem - sorry hab ich vergessen zu erwähnen

Ohne Anführungszeichen soll nichts ersetzt werden.

also
ABC soll ABC bleiben.

hierzu habe ich auch die schnelle einfach nichts finden können oder an der falschen stelle gesucht.
Bitte warten ..
Mitglied: Lochkartenstanzer
24.08.2019 um 08:48 Uhr
https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Comman ...

Einfach die Referenzen nutzen,

Um die Teile zwischen Anführungszeichen und zu ersetzendem String zu erhalten.

lks
Bitte warten ..
Mitglied: psuser
LÖSUNG 24.08.2019, aktualisiert um 10:20 Uhr
Zitat von nekron:

Mein Problem - sorry hab ich vergessen zu erwähnen

Ohne Anführungszeichen soll nichts ersetzt werden.

also
ABC soll ABC bleiben.
Na dann schreib sie halt mit in dein Suchpattern https://regex101.com/r/2jiQ02/1/
Oder wie Lochkartenstanzer schon schreibt wenn da außer dem Suchstring noch mehr zwischen den Anführungszeichen steht benutze Submatches https://regex101.com/r/Kn6uKa/2/
Bitte warten ..
Mitglied: nekron
24.08.2019 um 10:31 Uhr
Der zweite Vorschlag passt schon ziemlich - ich habe mit Regex noch nie was zu tun gehabt ... auf Anhieb nix gefunden - da stelle ich lieber ne frage als mich tot zu suchen.

Ich habe jetzt leider noch ne Ausnahme gefunden

„ABC.blafasel“ darf auch nicht ersetzt werden. Kann mir einer erklären wie ich das noch einbaue ? Sozusagen der nächste Buchstabe darf nicht ein Punkt sein?

Danke euch allen und Gruß von der Nordsee
Bitte warten ..
Mitglied: nekron
24.08.2019, aktualisiert um 15:32 Uhr
Das kommt davon wenn man sich mit dem allen einfach zu wenig auseinandersetzt, es würde mir leider ne menge Arbeit ersparen

wenn ich das ganze nun als sed Kommando absetze wird nix mehr draus Ich bin anscheinend einfach zu blöd für sowas …

sed -r "s/("^"*)ABC(^.^"*"|")/\1DEF\2/g" test.txt

(
-r, --regexp-extended
use extended regular expressions in the script.
)

ergibt (ich glaube die Ursprungsdatei brauche ich nicht zu erläutern )

DEF
"DEF"
"istDEFtest"
"istDEF.test"

also im Prinzip das gleiche wie
sed -r "s/ABC/DEF/g" test.txt

Ich bin ratlos und verwundert Und danke euch beiden für eure Hilfestellung - ich peils einfach nicht!
Bitte warten ..
Mitglied: psuser
24.08.2019, aktualisiert um 15:50 Uhr
Joa ... wenns zum richtig kopieren noch nicht mal mehr reicht, dann ist Hopfen und Malz verloren.
01.
sed -re 's/("[^"]*)ABC([^.][^"]*"|")/\1DEF\2/gi' test.txt >test2.txt
Regex muss man selbst lernen, alles andere bringt einen nüscht viel weiter. Es ist wie es ist, wenn ich zum Angeln gehe werfe ich ja auch nicht erst mal ein Ölfass als Köder in den See .
Das kommt davon wenn man sich mit dem allen einfach zu wenig auseinandersetzt, es würde mir leider ne menge Arbeit ersparen
Dann nehme keine Aufträge an die du nicht erledigen kannst.
Bitte warten ..
Mitglied: nekron
24.08.2019, aktualisiert um 17:21 Uhr
Stimmt - anders kann ich's im Moment auch nicht ausdrücken … einfach zu blöd, total überlastet und trotz Urlaub schon wieder Urlaubsreif

Wahrscheinlich kämpfe ich auch noch mit Windows dazu - das vergass ich zu erwähnen.

D:\>sed -re "s/("["]*)ABC([.]["]*"|")/\1DEF\2/gi" test.txt
sed: -e expression #1, char 39: unterminated `s' command

das ganze in einer Bash:

$ sed -re 's/("[^"]*)ABC([^.][^"]*"|")/\1DEF\2/gi' d:/test.txt
ABC
"DEF"
"istDEFtest"
"istABC.test"

wird wahrscheinlich am | liegen denke ich - vielleicht hast du da noch einen rat ?

Und nein - das hat mit einem Auftrag nichts zu tun - ich möchte nur einige händische Ersetzungen automatisieren - bisher hab ich das händisch gemacht - und ganz ehrlich noch nie mit SED gearbeitet.

So - wenn ich das Regex in eine File packe dann funktionierts auch unter Windows !

DANKE AN EUCH BEIDEN - YOU MADE MY DAY

Kann mir einer noch erklären wie es genau umgekehrt gelöst werden ? Alles ersetzen was nicht in Anführungszeichen steht ? Geht das auch ?
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Logdateien bereinigen mit sed
gelöst Frage von cuilsterBatch & Shell12 Kommentare

Hallo. Ich versuche log Dateien mittels sed Befehl zu bereinigen. Ziel ist es erstmal alle Zeilen zu löschen in ...

Batch & Shell

Sed - Zeile mit bestimmten Anfang löschen

gelöst Frage von ToormsBatch & Shell2 Kommentare

Hallo zusammen, ich habe schon mal ein wenig mit sed "herumgespielt" aber noch nicht wirklich zu dem Ergebnis gekommen, ...

Microsoft Office

Ungleich Text

gelöst Frage von grasihuepferMicrosoft Office1 Kommentar

Hi Leute, Wie kann man eigentlich ungleich in eine Formel setzen? Bei Zahlen kann ich das ja mit "ungleich". ...

Linux

URL und Username aus HTML-Datei extrahieren - sed, grep

gelöst Frage von plutowitschLinux4 Kommentare

Hallo liebe Administratoren, ich bräuchte mal Eure Hilfe Aktuell bin ich dabei ein recht umfangreiches Script zu schreiben, jedoch ...

Neue Wissensbeiträge
Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 3 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 3 TagenExchange Server4 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Schulung & Training

Humble Book Bundle: Network and Security Certification 2.0

Tipp von NetzwerkDude vor 3 TagenSchulung & Training

Abend, bei HumbleBundle gibts mal wider ein schönes Paket e-books: sind verschiedene Zertifizierungen wie MCSA, CCNA, CompTIA etc., für ...

Voice over IP

Telekom Umstellung von ISDN Anlagenanschluss auf IP-Telefonie

Erfahrungsbericht von NixVerstehen vor 6 TagenVoice over IP11 Kommentare

Hallo zusammen, nachdem nun vor ein paar Tagen die zwangsweise Umstellung von ISDN auf IP-Telefonie problemlos über die Bühne ...

Heiß diskutierte Inhalte
VB for Applications
Euro-Zeichen in jedem neu erstellten Brief mit Word automatisch entfernen
gelöst Frage von imebroVB for Applications23 Kommentare

Hallo, ich habe ein Problem mit Word, bzw. mit dem €-Zeichen, welches bei Erstellung eines Word-Briefes automatisch eingesetzt wird. ...

Batch & Shell
Regedit eintrad ändern als Admin
Frage von cyberworm83Batch & Shell19 Kommentare

Hallo zusammen, ich bin derzeit als Rollout Techniker unterwegs und muss täglich bei zig Rechnern einen Registry Einträg ändern ...

Visual Studio
Prüfen, ob Programm schon disposed wurde
Frage von MarcoBornVisual Studio17 Kommentare

Hallo Forum, ich habe in VB.NET ein Programm geschrieben, welches Word startet und dort Daten ausliest. Obwohl ich die ...

Router & Routing
Mikrotik Config PTP
Frage von Marcel94Router & Routing17 Kommentare

Hallo, kennt sich jemand mit Mikrotik aus? Möchte gerne eine PTP Verbindung mit zwei SYTsq 5ac Antennen erstellen. So ...