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
Kommentar vom Moderator Biber am 01.07.2009 um 21:37:18 Uhr
Habe den Beitragstitel ergänzt.
Warum der Beitragsersteller selbst nach TzukiSans Kommentar nicht auf die Idee des "Editierens" kam entzieht sich meiner Kenntnis.

skriptgesteuert Zeilen einer Datei ändern - - - P.S. Unter Linux - - -

Frage Entwicklung Batch & Shell

Mitglied: hotte001

hotte001 (Level 1) - Jetzt verbinden

01.07.2009, aktualisiert 21:37 Uhr, 3980 Aufrufe, 4 Kommentare

Ich möchte mit Bezug auf die Einsprung Adresse (s.u.) in einer Datei
in einer/mehrerer Zeile/n mal den Wert1 löschen oder dazusetzen oder die Zeile so
belassen.
Gegeben sei eine Datei folgenden Aufbaus:

Einsprung Adresse
feste
Anzahl
von
Zeilen
bis
zur
nächsten
Einsprung Adresse

In einer festen Anzahl von Zeilen stehen kommaseparierte Werte
z.b { Wert1,Wert2,Wert3,Text1,Text2,Wert4,Zahl1 }
die aber nicht alle ausgefüllt sein müssen

Z.Bsp
Adresse 4711
{ Wert1,Wert2,Wert3,Text1,Text2,Wert4,Zahl1 }
{ Wert1,,Wert3,Text1,Text2,Wert4,Zahl1 }
{ ,Wert2,,Text1,,Wert4,Zahl1 }
{ ,Wert2,Wert3,Text1,Text2,Wert4,Zahl1 }
{ Wert1,Wert2,Wert3,,Text2,Wert4,Zahl1 }
{ Wert1,Wert2,Wert3,Text1,Text2,Wert4,Zahl1 }
{ ,Wert2,Wert3,,Text2,Wert4,Zahl1 }
{ ,Wert2,Wert3,Text1,Text2,Wert4, }
{ Wert1,Wert2,Wert3,Text1,Text2,,Zahl1 }
{ ,Wert2,,Text1,,Wert4,Zahl1 }
Adresse 4712
{ Wert1,Wert2,Text1,Text2,Wert4,Zahl1 }
{ Wert1,,Wert3,Text1,Text2,Wert4,Zahl1 }
{ ,,,Text1,,Wert4,Zahl1 }
{ ,,,Text1,Text2,Wert4,Zahl1 }
{ Wert1,,,,,Wert4,Zahl1 }
{ Wert1,Wert2,,,,Wert4,Zahl1 }
{ ,Wert2,Wert3,,Text2,Wert4,Zahl1 }
{ ,Wert2,Wert3,Text1,Text2,Wert4, }
{ Wert1,Wert2,Wert3,Text1,Text2,,Zahl1 }
{ ,Wert2,,Text1,,Wert4,Zahl1 }
usw

Meine Idee war die Adresse zu suchen und dann zeilenweise z.B in einer while schleife die Zeilen einlesen,
Bedingung prüfen (muss Wert1 gesetzt/gelöscht werden) , und die gewünschte Änderung Zeile ändern und/oder weiter zur nächsten Zeile.

Doch, mit welcher skriptsprache komme ich hier am besten zum Ziel,
und wie fange ich an?
Mitglied: TsukiSan
01.07.2009 um 19:33 Uhr
...auch ein fröhliches Hallo, hotte

in VB würde dies circa so aussehen
01.
dim D as freefile 
02.
open "C:\Datei.???" for input as D 
03.
while not eof(D) 
04.
Line Input ' D , AdrTemp$ 
05.
if AdrTemp$ = "4712" then 
06.
 input # D , StrTemp1$, StrTemp2$,StrTemp3$,StrTemp4$,StrTemp5$,StrTemp6$ 
07.
select case "Wasauchimmer" 
08.
case StrTemp1$ 
09.
  'irgendwas machen 
10.
case StrTemp2$ 
11.
 'irgendwas machen 
12.
case StrTemp3$ 
13.
  'irgendwas machen 
14.
'usw. 
15.
end select 
16.
end if 
17.
wend 
18.
close
Soweit zu VB.
Ich denke aber, daß geht auch mit scripten. Aber da sind andere Experten gefragt.

Gruß
Tsuki
Bitte warten ..
Mitglied: hotte001
01.07.2009 um 20:14 Uhr
Ups - dabei fällt mir gerade auf, ich vergass zu sagen, dass ich dies unter Linux machen will.
Also eher bash, perl, oder so ähnlich.

hotte
Bitte warten ..
Mitglied: TsukiSan
01.07.2009 um 20:33 Uhr
Na dann auch ein Ups

Gruß
Tsuki
Bitte warten ..
Mitglied: 68162
02.07.2009 um 06:59 Uhr
In PERL oder so gibt's sicher bessere Lösungen, aber da ich das nicht kann als Shellscript-Gedanken-Experiment:
Mit "grep" kannst Du z.B. nach "Adresse 4712" suchen; es gibt Dir weiterhin die Möglichkeit eine danach folgende feste Zeilenanzahl auszugeben (egal ob in TEMP-Datei, Bildschirm, Pipe).
Das dann weiter verarbeiten via "sed" oder zeilenweise "for each in x".
Den Textfetzen dann wieder via "sed" ins Original einfügen.

MfG, FM_81
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Zeile eine Datei per batch ersetzen (1)

Frage von duckknight zum Thema Batch & Shell ...

Linux
AD Sites and Services für Linux verfügbar machen (7)

Frage von winlin zum Thema Linux ...

Installation
gelöst Mit Powershell in einer Datei eine Zeile auslesen (6)

Frage von Bommi1961 zum Thema Installation ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Windows Server
Zertifikat am DC erneuern funktioniert nicht (13)

Frage von takvorian zum Thema Windows Server ...