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

unterschiedliche string in csv löschen

Frage Entwicklung Batch & Shell

Mitglied: 77575

77575 (Level 1)

12.07.2009, aktualisiert 20:35 Uhr, 5794 Aufrufe, 19 Kommentare

hallo,

ich exportiere mit dem tool csvde die benutzer einer domäne in eine csv datei, diese daten werden f. ein anderes system zum importieren genutzt.
leider gibt das tool auch immer die OU container mit aus. diese muss ich nun löschen.

hier mal ein paar bsp. zeilen.
"CN=Mustermann Max,OU=Benutzer,DC=Firma,DC=DE",Max,Musterann,Berlin,Marketing,maxmustermann@firma.de
"CN=Sorglos Anita,OU=Benutzer,DC=Firma,DC=DE",Anita,Sorglos,Berlin,Finanzbuchlatung,anita.sorglos@firma.de
"CN=Meier Otto,OU=Benutzer,DC=Firma,DC=DE",Otto,Meier,München,Sales,Otto.Meier@firma.de
usw.

Ich muss jetzt alles löschen was zwischen den beiden Anführungszeichen steht, inklusive der Anführungszeichen und des darauffolgendem komma, also zum beispiel in der erstenzeile den Text
"CN=Mustermann Max,OU=Benutzer,DC=Firma,DC=DE",

Bei vb script gibt es ja die funktion replace, nur nützt mir die in meinem fall nichts, weil der string der ersetzt werden soll in jeder zeile anders ist.
wenn man das ganze auch mit batch realisieren könnte wäre es super.
hab mir mal delims angeschaut aber komme nicht damit klar.

gruss 01-01-01
Mitglied: Berrnd
12.07.2009 um 20:41 Uhr
Hi,

für solche Dinge kann ich Dir den EmEditor empfehlen. Der bietet ziemlich umfangreiche "Suche & Ersetze" Möglichkeiten.
(siehe: http://emeditor.com)

Gruß
Bernd
Bitte warten ..
Mitglied: 77575
12.07.2009 um 20:45 Uhr
Zitat von Berrnd:
Hi,

für solche Dinge kann ich Dir den EmEditor empfehlen. Der bietet
ziemlich umfangreiche "Suche & Ersetze"
Möglichkeiten.
(siehe: http://emeditor.com)

Gruß
Bernd

hallo,

das ganze muss über ein script laufen.

gruss 01-01-01
Bitte warten ..
Mitglied: 76109
12.07.2009 um 20:57 Uhr
Hallo 01-01-01!

Das sollte funktionieren:
01.
Const iPath = "F:\$Scripts\Test\Import.CSV" 
02.
Const ePath = "F:\$Scripts\Test\Export.CSV" 
03.
 
04.
Dim Fso, iFile, eFile, Text 
05.
 
06.
Set Fso = CreateObject("Scripting.FileSystemObject") 
07.
Set iFile = Fso.OpenTextFile(iPath) 
08.
Set eFile = Fso.CreateTextFile(ePath) 
09.
     
10.
Do Until iFile.AtEndOfStream 
11.
    Text = Split(iFile.ReadLine, """") 
12.
    If UBound(Text) = 2 Then eFile.WriteLine Mid(Text(2), 2) 
13.
Loop 
14.
 
15.
iFile.Close:  eFile.Close 
16.
 
17.
MsgBox "Der Exportvorgang ist beendet!", vbInformation, "Meldung"
Gruß Dieter
Bitte warten ..
Mitglied: Biber
12.07.2009 um 21:21 Uhr
Moin 01-01-01,


unabhängig davon, dass wir hier sicherlich eine Batch/VBS/whatever-Lösung finden werden,
ich exportiere mit dem tool csvde die benutzer einer domäne ...
  • und wer zwingt Dich dann, das OU-Feld mit rauszulutschen?
diese daten werden f. ein anderes system zum importieren genutzt.
  • und wer zwingt dieses Tool, alle Felder in der CSV-Datei zu nutzen?

In meiner Jugend war dieses CSV-Format so beliebt, weil wir damals bei jedem Import sagen konnten:
"Nimm nur Felder 1, 3, 7 und 10, aber bitte in der Reihenfolge Feld1, Feld7, Feld10 und dann Feld3"

Ist so etwas mit dieser neumodischen Manymany-Kernels-Architektur heute nicht mehr möglich?

Grüße
Biber
Bitte warten ..
Mitglied: 76109
12.07.2009 um 21:42 Uhr
Hallo Biber!

Zitat von Biber:
In meiner Jugend war dieses CSV-Format so beliebt, weil wir damals
bei jedem Import sagen konnten:
"Nimm nur Felder 1, 3, 7 und 10, aber bitte in der
Reihenfolge Feld1, Feld7, Feld10 und dann Feld3"


In meiner Jugend gab es noch kein Excel, aber heute geht das noch mit der Textimportfunktion

Gruß Dieter
Bitte warten ..
Mitglied: Biber
12.07.2009 um 23:03 Uhr
Moin didi1954,
<OT>
Zitat von 76109:
In meiner Jugend gab es noch kein Excel...
Ich nehme ja die Redmonder in Schutz, wo und wann auch immer ich kann.
Aber die Erfindung des CSV-Formats geht nicht auf deren PraktikantInnenkonto.
Woran sie allerdings (vor allem durch Excel) verantwortlich sind ist, dass durch den jahrelangen Excel-Quasi-Standard die comma separated values-Dateien im Allgemeinen semicolon separated gemeint sind, wenn jemand eine CSV-Datei für Import/Export plant.

Aber wenn 01-01-01 doch mit dem Zielsystem "Excel" gemeint hätte, dann würde er doch ohnehin "Jose" für AD-Abfragen verwenden, oder?
</OT>

Grüße
Biber
Bitte warten ..
Mitglied: 77575
13.07.2009 um 13:24 Uhr
Zitat von Biber:
...
  • und wer zwingt Dich dann, das OU-Feld mit rauszulutschen?
das tool selbst. ich habe noch keinen schalter gefunden der die OU struktur weglässt, sollte es einen geben, wäre ich dankbar für den hinweis

Zitat von Biber:
> diese daten werden f. ein anderes system zum importieren
genutzt.
  • und wer zwingt dieses Tool, alle Felder in der CSV-Datei zu
nutzen?
darauf habe ich keinen einfluss.
Bitte warten ..
Mitglied: 77575
13.07.2009 um 13:40 Uhr
hi didi1954,

das funktioniert auch ganz gut. nur die export datei hat ein binäres format.
wenn ich es mit ultraedit öffne, zeigt es mir als binär datei an. wenn ich es mit notepad öffne, zeigt er es mir mir je einem space zwischen jedem zeichen an.
bekommt man das erste komma auch noch weg?
das output sieht so aus:
, M a x , M u s t e r a n n , B e r l i n , M a r k e t i n g , m a x m u s t e r m a n n @ f i r m a . d e

Gruss 01-01-01
Bitte warten ..
Mitglied: 77575
13.07.2009 um 13:49 Uhr
Zitat von Biber:
Aber wenn 01-01-01 doch mit dem Zielsystem "Excel" gemeint
hätte, dann würde er doch ohnehin "Jose" für
AD-Abfragen verwenden, oder?

>/OT>
Grüße
Biber


hi , mit jose bekomme ich eine schöne html seite raus, wie bekomme ich damit ein komma separiertes ergebniss?
das system f. den import ist mir nichzt bekannt.

gruss 01-01-01
Bitte warten ..
Mitglied: Biber
13.07.2009 um 14:40 Uhr
Moin 01-01-01,

damit Du erstmal eine funktionierende Lösung bekommst.

Die beiden Methoden [FileSystemObject.]OpenTextfile() und .CreateTextFile() kennen jeweils noch einen Parameter für Textdateien im Unicodeformat.

Wenn Du die INPUT-Datei als als Unicode lesen willst
Set iFile =Fso.OpenTextFile(iPath, , , -1) ' 4.Parameter Tristatetrue auf (-1) setzen -->Unicode
bzw die Ergebnisdatei als ASCII (bzw. nicht Unicode) wegschreiben willst
Set eFile = Fso.CreateTextFile(ePath, , FALSE) ' 3.Parameter TRUE = unicode; FALSE ist DEFAULT

Deine anderen Antworten bzw Rückfragen habe ich gelesen, aber hab momentan keine Zeit dafür.
.
Grüße
Biber
Bitte warten ..
Mitglied: wuehlaz
13.07.2009 um 15:03 Uhr
hmpf also wenn ich in meine ad console gehe und auf benutzer einen rechtsklick mache erscheint dort "liste exportieren".

er exportiert mir dann alle angezeigten spalten (kann man sich in der ansicht auswählen) in eine csv datei ohne ou.

und die geht wunderbar im excel öffnen und dort steht dann zb:

Mustermann,Gruppe,Abteilung,

Mehr Spalten lasse ich bei mir nicht anzeigen.

kannst auch mal das programm Hyena testen. damit arbeiten wir zb.

lg
Bitte warten ..
Mitglied: 77575
13.07.2009 um 16:04 Uhr
hi didi1954,

das funktioniert auch ganz gut. nur die export datei hat ein binäres format.
wenn ich es mit ultraedit öffne, zeigt es mir als binär datei an. wenn ich es mit notepad öffne, zeigt er es mir mir je einem space zwischen jedem zeichen an.
bekommt man das erste komma auch noch weg?
das output sieht so aus:
, M a x , M u s t e r a n n , B e r l i n , M a r k e t i n g , m a x m u s t e r m a n n @ f i r m a . d e

Gruss 01-01-01
Bitte warten ..
Mitglied: 77575
13.07.2009 um 16:05 Uhr
Zitat von wuehlaz:
hmpf also wenn ich in meine ad console gehe und auf benutzer einen
rechtsklick mache erscheint dort "liste exportieren".

er exportiert mir dann alle angezeigten spalten (kann man sich in der
ansicht auswählen) in eine csv datei ohne ou.

und die geht wunderbar im excel öffnen und dort steht dann zb:

Mustermann,Gruppe,Abteilung,

Mehr Spalten lasse ich bei mir nicht anzeigen.

kannst auch mal das programm Hyena testen. damit arbeiten wir zb.

lg



ja alles schön und gut, aber ich muss es automatisiert machen, den es handelt sich nicht nur um eine OU.
Bitte warten ..
Mitglied: 77575
13.07.2009 um 18:45 Uhr
hallo,

dank didi und biber hab ich das ganze jetzt passend.
hier der code.
01.
Const iPath = "D:\tmp\test\import.csv" 
02.
Const ePath = "D:\tmp\test\Export.csv" 
03.
 
04.
Dim Fso, iFile, eFile, Text 
05.
 
06.
Set Fso = CreateObject("Scripting.FileSystemObject") 
07.
Set iFile = Fso.OpenTextFile(iPath,,,-1) 
08.
Set eFile = Fso.CreateTextFile(ePath,,FALSE) 
09.
     
10.
Do Until iFile.AtEndOfStream 
11.
    Text = Split(iFile.ReadLine, """") 
12.
    If UBound(Text) = 2 Then eFile.WriteLine Mid(Text(2), 2) 
13.
Loop 
14.
 
15.
iFile.Close:  eFile.Close
Vielen Dank nochmal

gruss 01-01-01
Bitte warten ..
Mitglied: Biber
13.07.2009 um 19:11 Uhr
Moin 01-01-01,

okay, wenn Du jetzt zumindest eine mögliche Lösungsvariante sicher hast,
dann kann ich etwas entspannter mein "ja, aber.." formulieren.

Ich habe gerade nach einer relativ uninspirierten Suchmaschinenbefragung ("cvsde syntax") und dreimal Klicken
beispielsweise die (Schritt-für-Schritt-Her)Anleitung CSVDE Export user Accounts gefunden.

Dort wird an einer Stelle, die der Leser/die Leserin nach ca 17sec stressfrei erreicht als ein Beispiel für einen Nur-5-für-mich-wichtige-Felder-Export hergeleitet:

Command: CSVDE -f export4.csv -r objectClass=user -l "DN, objectclass, givenName, sn, name"

Ich denke also (nach wie vor), dass mit einem kurzen 5-Minuten-Mittagspausen-Rumgugeln die ganze Klamotte auch
  • ohne Zwischen-CSV-Dateien und
  • ohne "Do until ( Kunde.AtEndOfStream or nerven =BLANK)"
lösbar ist.

Grüße
Biber
Bitte warten ..
Mitglied: 77575
13.07.2009 um 19:24 Uhr
hi biber,
die seite kenne ich auch.
ich habe es trotzdem nicht geschafft mein csv output ohne die CN/OU container zu exportieren.
das ist mein csvde kommando:
csvde -m -n -u -f "%tmpPath%\munich.csv" -d "OU=Benutzer,OU=Berlin,DC=Firma,DC=de" -r "(|(&(objectClass=user)))" -l givenName,sn,mail,department,physicalDeliveryOfficeName

csvde gibt trotzdem die CN/OU/DC mit aus. ausserdem wird komischweise immer erst der nachname der standort und dann der nachname ausgegeben, egal in welcher reihenfolge ich die ldap felder angebe.

deshalb habe ich ja nach einer lösung gesucht.

gruss 01-01-01
Bitte warten ..
Mitglied: 76109
14.07.2009 um 12:00 Uhr
Hallo zusammen!

Sorry, hatte gestern leider keine Zeit und einen miesen Tag dazu.

OP-Termin Uni-Klinik-Heidelberg und heftiger Autoschaden. Auf dem Klinikgeländere ca 500m vorm Ziel, bin ich wegen einer Diesel-Spur eines Verkehrsbusses in einer Kurve geradeaus gefahren. Das Problem dabei, es ging nur nach Rechts oder Links Hoffe bloß, dass die Verkehrsbetriebe den Schaden übernehmen, sonst wird's sehr sehr Teuer

@Biber

Danke für's Einspringen.

Gruß Dieter
Bitte warten ..
Mitglied: Biber
14.07.2009 um 12:30 Uhr
Moin didi1954,

<OT>
Verkehrsbetriebe sind da ja sehr kulant - die werden einen Sachverständigen auf das ansetzen, was gestern noch Dein Auto war, und falls ein eingerasteter Blinkhebel Deinen Rechts-oder-Links-Abbiegewillen hinreichend dokumentiert, dann hast du Chancen.
Du hast doch geblinkt, oder...?

Wie dem auch sei, auch wenn es nicht klappen sollte
Deine Geradlinigket erkennen wir auf jeden Fall an...

</OT>

Grüße
Biber
Bitte warten ..
Mitglied: 76109
14.07.2009 um 13:33 Uhr
Hallo Biber!

Danke für Deine aufmunternten Worte

Na, selbstverständlich habe ich geblinkt Aber ich musste ja die vielbefahrene Zufahrtsstraße freimachen. Und außer meinem Auto, ist ja nix beschädigt, da lediglich ein hoher Bordstein im Weg war, der mir das rechte Vorderrad zerfetzt, Rahmenteile geknickt, das Lenkgestänge und sonstige Teile ein paar Zentimenter nach innen verschoben hat. Nach einem Radwechsel bin auch noch ins Parkhaus und Heute wieder ganz vorsichtig nach Hause gefahren.

Die Polizei war da und die Feuerwehr hatte auch schon Bescheid gewusst, aber noch nichts unternommen. Keine Schilder aufgestellt oder sonstiges. Erst nachdem die Polizei nachgehakt hat, wurde die Straße über mehrere Hundert Meter gereinigt. Und die Polizei war es auch, die den Verursacher ermittelt und gesagt hat, dass mir der Schaden, WENN ICH GLÜCK HABE, von den Verkehrsbetrieben ersetzt wird. Morgen lass ich mir mal einen Kostenvoranschlag machen und bin auf das Ergebniss sehr gespannt????

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Powershell - Zeilen in einer csv löschen bis (7)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Batch & Shell
gelöst Poweshell Script soll String ersetzen und die leere Zeile löschen (4)

Frage von Mars123 zum Thema Batch & Shell ...

Batch & Shell
CSV durchsuchen und löschen (3)

Frage von leonmm zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...