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

Per Batch Einträge bestimmter Spalten einer Text-Datei löschen und ersetzen

Frage Entwicklung Batch & Shell

Mitglied: Grinsebaer

Grinsebaer (Level 1) - Jetzt verbinden

29.06.2014 um 14:59 Uhr, 3341 Aufrufe, 7 Kommentare, 2 Danke

Hi, bin totaler Anfänger in Batch und sitze an folgendem Probelm: Ich soll die Tabelleneinträge bestimmter Spalten in einer Textdatei komplett löschen und allesamt mit Null ersetzen. Mit welchem Befehl kann ich in Batch auf bestimmte Spalten (in meinem Fall Spalten 8-13, wobei die 13. Spalte die letzte is) zugreifen?
Schonmal Danke im Voraus!

P.S.: Die Tabellen sind mehere Tausend Zeilen lang und ich soll das Problem explizit mit Batch lösen..
Mitglied: Xaero1982
29.06.2014 um 15:13 Uhr
Hi,

Wie sollen Textdateien Spalten haben?

Man kann sie höchstens mit Trennzeichen abgrenzen, aber Spalten als solche gibt es nicht.

Da musst du uns wohl mal ein paar Beispieldaten geben, weil damit kann man nichts anfangen.

Gruß
Bitte warten ..
Mitglied: Grinsebaer
29.06.2014 um 15:27 Uhr
Die Spalten sind einfach nur durch Leerzeichen voneinander getrennt.
Eine Beispieldatei sieht so aus:

5468 1 1 1 0.01091921 0.01218321 0.00718657 0.29249474 -0.69108094 -0.16363939 99.76503040
6205 1 1 1 0.00243227 0.01142169 0.00631002 0.00911101 -0.44771534 0.35375144 203.74846094
4326 1 1 1 0.01278301 0.00653496 -0.00042589 -0.62553946 -0.40600057 -0.03850601 -83.26634383
1247 1 1 1 0.01102416 0.00615661 0.00636421 0.28275558 0.11690595 0.49247037 97.91485928

Im ersten Teil meiner Batch-Datei sortier ich die Daten numerisch nach der ersten Zeile und füge einen Header ein. Das hab ich soweit hinbekommen. Jetzt muss ich noch die Tabelleneinträge der letzten 3 Spalten löschen bzw. mit 0 ersetzen.

P.S.: Die Daten sehen hier recht ungleichmäßig verteilt aus. In der Textdatei sind die Abstände immer gleich groß und 7-8 Leerzeichen lang..
Bitte warten ..
Mitglied: Xaero1982
29.06.2014 um 20:58 Uhr
Dein Beispiel hat nur 11 Spalten und keine 13... wasn nu?

Einfach ersetzen oder löschen geht nicht - musst du über eine Tempdatei lösen.

Mit:

01.
@echo off 
02.
 
03.
set "txt=input.txt" 
04.
set "temp=output.txt" 
05.
 
06.
for /f  "tokens=1-11 delims= " %%a in (%txt%) do echo %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k >> %temp% 
07.
 
Kannst du alle Spalten auslesen und dann in eine neue Textdatei schieben. Die, die du dann nicht brauchst lässt du weg, also wenn die letzten drei weg sollen %%k %%j %%i und an die Stelle kannst du auch einfach 0 0 0 setzen.

Gruß
Bitte warten ..
Mitglied: Grinsebaer
29.06.2014 um 21:44 Uhr
Vielen Dank schonma,
das bringt mich meinem Zeil schon sehr nahe. Das mit der temp-Datei ist auch kein Problem. Hab ich vorher auch gemacht. Die überflüssigen Zwischendateien können ja am Ende der Batch-Datei gelöscht werden. Einzig, dass die ursprüngliche Tabellenform nicht mehr hergestellt wird, stört mich ein wenig. Anstatt wie vorher 7-8 Leerzeichen (je nachdem, ob vor dem Wert ein Minus steht) hab ich nun nur noch jeweils ein Leerzeichen zwischen den Werten. Indem ich in die entsprechende Zeile der Batch-Datei ein paar Leerzeichen mehr einbaue, kann ich das Problem etwas umgehen. Dennoch ist die Tabelle durch das Vorzeichen ungleichmäßig. Eine Möglichkeit die ursprüngliche Form beizubehalten gibt es nicht, oder?!

P.S.: Die Spalten hatte ich abgekürzt, weil mir die Vorschau bei weiteren Spalten einen Zeilenumbruch angezeigt hat, so dass keine Tabellenform mehr ersichtlich war.
Bitte warten ..
Mitglied: Xaero1982
29.06.2014, aktualisiert um 22:07 Uhr
Ok... dann musst du bei Tokens aber 1-13 schreiben und das echo entsprechend erweitern...

Das mit der Tabellenform wird nichts - zumindest wüsste ich nicht wie...vielleicht ja der Bastla. Mit Powershell wird das sicher gehen...

Wart mal ab bis morgen... da kommt sicher der Bastla mit einer Lösung um die Ecke

Gruß
ps: Poste mal bitte eine korrekte Beispieldatei...
Bitte warten ..
Mitglied: Grinsebaer
29.06.2014 um 22:47 Uhr
Das mit dem Anpassen hab ich schon hinbekommen. Dir schonma vielen Dank für die Hilfe! Für die 3 Zeilen oben hätte ich bestimmt wieder Stunden gebraucht..

Mit der Tabellenform lass ich es jetzt erstma so und versuch das nur zu verbessern, wenn das in der Form nich bearbeitet werden kann. Im Prinzip isses ja nur eine optische Sache.

P.S.: Ich sollte das mit Batch lösen, mit Powershell hab ich nämlich auch noch nie gearbeitet..
Bitte warten ..
Mitglied: colinardo
01.07.2014, aktualisiert 02.07.2014
Moin,
Zitat von Grinsebaer:
P.S.: Ich sollte das mit Batch lösen, mit Powershell hab ich nämlich auch noch nie gearbeitet..
dann wird's aber Zeit für einen Powershell-Einzeiler
01.
gc "d:\fileIN.txt" | %{$_ -replace '(.*?)\s+(([\.\d-]+\s*){3})$','$1       0        0        0'} | set-content "D:\fileOUT.txt"
(ersetzt die letzten 3 Spalten jeder Zeile durch Nullen)

oder wenn das gleiche File ersetzt werden soll:
01.
$file = "D:\file.txt" 
02.
(gc $file) -replace '(.*?)\s+(([\.\d-]+\s*){3})$','$1       0        0        0' | set-content $file
Grüße Uwe

p.s. du siehst es lohnt sich, mit Powershell mal zu beschäftigen
Bitte warten ..
Ähnliche Inhalte
Windows 7
Mit einer Batch-Datei einzelne Ausschnitte aus einer Text-Datei löschen
gelöst Frage von meisterluehrsWindows 719 Kommentare

guten morgen, ja ich weiss haben schon weiss gott wie viele andere gefragt Aber, bei mir hilft nix :/ ...

Batch & Shell
Batch-Datei um Dateien mit bestimmten Dateinamen zu löschen
gelöst Frage von SwisterBatch & Shell4 Kommentare

Hallo, Ich habe mehrere Tausend Bilder die folgenden Namen haben "m20130310040500500". Der Name setzt sich wie so zusammen "m" ...

Batch & Shell
Batch Leerzeichen in nur bestimmten Spalten entfernen?
gelöst Frage von Komoran12Batch & Shell2 Kommentare

Hallo, erstmal allen ein schönes Pfingstwochenende!:) Ich suche gerade nach einer Möglichkeit per Batch in einer Csv mit mehrerer ...

Batch & Shell
Bestimmte Bilder mit Batch löschen
gelöst Frage von hanni007Batch & Shell2 Kommentare

Hallo, seit einigen Tagen bin ich schon als Nichtnutzer in eurem Forum unterwegs. Nun habe ich mich aber entschlossen, ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 17 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 22 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 22 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

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 ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
gelöst Frage von prodriveNetzwerkmanagement12 Kommentare

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