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

Textdatei, bestimmte Stellen in einer Zeile entfernen

Frage Entwicklung Batch & Shell

Mitglied: user90

user90 (Level 1) - Jetzt verbinden

03.02.2010, aktualisiert 10:00 Uhr, 5783 Aufrufe, 10 Kommentare

Hallo,

ich hab auf dem Rechner eine Textdatei, dessen Inhalt so ähnlich aussieht:

Spalte1:                       Spalte2:                            Spalte3:

blabla                           374                                    563
blabla                           639                                    456
blablub                         345                                    dfga

Ich will die Spalte2 und Spalte3 und alles was darunter steht entfernen, nur per Hand würde es
sehr lange dauern, da die Datei ziemlich groß ist.

Hier im Forum fand ich dann jemand, der so ein ähnliches Problem hatte, nur der wollte Spalte1 und
alles was darunter liegt entfernen.

http://www.administrator.de/index.php?content=132280

Weiß jemand wie man das mit Bat oder VBS macht?
danke
Mitglied: DrAlcome
03.02.2010 um 09:52 Uhr
Geht bestimmt per Batch-Datei, aber ich würde es einfach in Excel importieren und die entsprechenden Spalten raus hauen. Dann wieder als TXT exportieren.
Ohne Batch-Vorkenntnisse geht die Excel-Variante schneller
Bitte warten ..
Mitglied: bastla
03.02.2010 um 10:04 Uhr
Hallo user90!

Gibt es ein Trennzeichen zwischen den Spalten oder eine feste Spaltenbreite?

@DrAlcome
Soferne es sich um eine einmalige Aktion handelt und daher Automatisierung kein Thema ist, hast Du völlig Recht ...

Grüße
bastla
Bitte warten ..
Mitglied: user90
03.02.2010 um 10:05 Uhr
Nein, mit Excel geht es leider nicht, da alle Spalten in einer Zelle gezeigt werden.
Bitte warten ..
Mitglied: user90
03.02.2010 um 10:08 Uhr
hi bastla,

die Txt-Datei sieht wie oben aus, in jeder Zeile ist eine feste Spaltenbreite

Edit:// ich hab die ganze Zeit die TXT-Datei per Drag&Drop in Excel rüber kopiert, hat nicht geklappt.
hab dann über Datei Öffnen - Feste Breite ausprobiert, jetzt geht es, danke euch beiden.

Mich interessiert´s dennoch, wie es mit Bat oder VBS geht.
Bitte warten ..
Mitglied: bastla
03.02.2010 um 10:11 Uhr
Hallo user90!

Dann kannst Du die Datei in Excel öffnen und "Feste Breite" wählen ...

... bzw folgenden Batch verwenden:
01.
@echo off & setlocal 
02.
set "Ein=D:\Import.txt" 
03.
set "Aus=D:\Spalte1.txt" 
04.
 
05.
del "%Aus%" 2>nul 
06.
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
>>"%Aus%" echo %Zeile:~,33% 
11.
goto :eof
Probleme könnte es mit dem Batch geben, wenn in der ersten Spalte bestimmte Sonderzeichen (<|>&) enthalten sind.

Grüße
bastla
Bitte warten ..
Mitglied: user90
03.02.2010 um 10:30 Uhr
Ich hab soeben den BatchScript ausgeführt.
Folgendes steht dann in Spalte1.txt:

Spalte1:                         S
blabla                             3
blabla                             6
blablub                           3

hat leider nicht geklappt, aber ich geb mich mit der Excel-Variante zufrieden.
thx
Bitte warten ..
Mitglied: DrAlcome
03.02.2010 um 10:35 Uhr
Sehr fein das es geklappt hat!
Batch ist zwar cooler, aber für ne einmalige Aktion passt Excel da gut!
Bitte warten ..
Mitglied: bastla
03.02.2010 um 11:43 Uhr
Hallo user90!

Scheitert aber eigentlich nur daran, dass ein Zeichen zuviel verwendet wird (ich hatte mich an Deinem Beispiel oben orientiert - wobei in den ersten beiden Zeilen 33 und in der dritten Zeile nur 32 Zeichen für die Spalte1 aufscheinen - und zur Sicherheit den größeren Wert genommen) - lässt sich aber leicht durch Änmderung des Wertes in der Zeile 10 anpassen.

Aber, wie gesagt, wenn Du das ohnehin nicht öfters brauchst ...

Grüße
bastla

P.S.: Bei Verwendung von Code-Formatierung wäre Dir die unterschiedliche Zeichenanzahl auch aufgefallen ...
Bitte warten ..
Mitglied: user90
03.02.2010 um 19:05 Uhr
Ich hab soeben noch mal mit der Wert in der 10. Zeile rumgespielt, und es geschafft, dass
nur die Spalte1 und alles was darunter steht in Spalte1.txt gespeichert wird.
danke, vllt. werd ich es noch öfters brauchen

Edit://

Zitat von bastla:
Hallo user90!
> vllt. werd ich es noch öfters brauchen
Na, dann lege ich noch die VBS-Variante drauf :
<code>EinDatei = "D:\Import.txt"
AusDatei = "D:\Spalte1.txt"
Spaltenbreite = 32

Set fso = CreateObject("Scripting.FileSystemObject")
Set Aus = fso.CreateTextFile(AusDatei)

For Each Zeile In Split(fso.OpenTextFile(EinDatei).ReadAll, vbCrLf)
Aus.WriteLine RTrim(Left(Zeile, Spaltenbreite))
Next
Aus.Close

Wow, das klappt auch noch, man muss nur mit dem Wert der Spaltenbreite "experimentieren".
Hab jetzt dank euch beiden drei Varianten. Respect all batch/vbsprofis
Bitte warten ..
Mitglied: bastla
03.02.2010 um 19:19 Uhr
Hallo user90!
vllt. werd ich es noch öfters brauchen
Na, dann lege ich noch die VBS-Variante drauf :
01.
EinDatei = "D:\Import.txt" 
02.
AusDatei = "D:\Spalte1.txt" 
03.
Spaltenbreite = 32 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
Set Aus = fso.CreateTextFile(AusDatei) 
07.
 
08.
For Each Zeile In Split(fso.OpenTextFile(EinDatei).ReadAll, vbCrLf) 
09.
    Aus.WriteLine RTrim(Left(Zeile, Spaltenbreite)) 
10.
Next 
11.
Aus.Close
Diese Version hat sogar einen kleinen Zusatznutzen: Die Leerzeichen am Ende der einzelnen Felder werden entfernt ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBS-Entfernen von Zeilen in einer Textdatei
Frage von Calim3roVB for Applications5 Kommentare

Hallo zusammen Ich möchte aus einer Textdatei Zeilen entfernen. Ich habe drei Dateien, in Datei "A" stehen Wörter, in ...

Entwicklung
Programmierung - In Textdatei an einer bestimmten Stelle einen bestimmten Wert eintragen
gelöst Frage von JimStarEntwicklung1 Kommentar

Guten Morgen zusammen, habe ein kleines Problem: Ich soll ein Script schreiben, welches durch ausführen eine bestimmte Datei bearbeitet. ...

Batch & Shell
Entfernen eines Strings vor einem bestimmten Zeichens in einer Textdatei
gelöst Frage von Privex007Batch & Shell3 Kommentare

Hallo an alle Coder, ich habe Probleme mit dem extrahieren eines String aus einer "txt"-Datei. Ich habe folgende Zeilen ...

Batch & Shell
Bestimmte Zeile einer Textdatei mit Batch auslesen
gelöst Frage von PinkFLuffyUnicornBatch & Shell2 Kommentare

Hi, ich habe ein kleines Batch Script, welches mir den Status der Firewall ausgeben soll(ob an oder aus) der ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 10 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 14 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 14 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 17 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...