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

Ersetzen aller Vorkommen ab einer bestimmten Position mit einem Shell script

Frage Entwicklung Batch & Shell

Mitglied: NicoBosshard

NicoBosshard (Level 1) - Jetzt verbinden

23.03.2013, aktualisiert 24.03.2013, 2387 Aufrufe, 7 Kommentare

Hallo zusammen,

Ich versuche schon seit kurzer Zeit einige nützliche Shellscripte auf meinem iPad über MobileTerminal zu programmieren. Ich habe bis jetzt auch schon vieles geschafft. Kürzlich habe ich ein Programm programmiert, dass alle bestimmten Vorkommen einer Datei in andere Ersetzen kann. Dieses würde ich jetzt gerne für aufgezeichnete Daten (1 Byte pro Datensatz) benutzen. Ich will z.B. alle 02 in 48 umwandeln. Mein Problem dabei ist, dass die Datei jetzt aber am Anfang 2000 Bytes Infodaten wie z.B. Ort enthält, die nicht ersetzt werden dürfen. Das heisst, dass erst ab dem 2000 Byte ersetzt werden darf. Eine zusätzliche Schwierigkeiten ist auch noch, dass es keine Zeilen gibt. Ich würde übrigens eine Such- und Ersetz Angäbe in Hexadezimal Bevorzugen aber es ist mir nicht so wichtig, da ich die Zahlensysteme einfach mit meinem Taschenrechner umrechnen kann.

Ich habe das gleiche Programm schon einmal am Computer in Blitzbasic Programmiert:

01.
Dim Block(25000000) 
02.
 
03.
;Einlesen und verändern der Datei 
04.
filein = ReadFile("Test.dat") 
05.
	i=0 
06.
	i_max=FileSize("Test.dat") 
07.
 
08.
	While Not i=i_max 
09.
		Block(i) = ReadByte(filein) 
10.
		If i>2000 And Block(i)=18 Then Block(i)=46 
11.
		i=i+1 
12.
	Wend 
13.
 
14.
CloseFile filein 
15.
 
16.
 
17.
;Änderungen Spiechern 
18.
filein = WriteFile("Test.dat") 
19.
 
20.
	For i=0 To i_max 
21.
		WriteByte filein,Block(i) 
22.
	Next 
23.
	 
24.
CloseFile filein 
25.
 
26.
Print "Fertig!" 
27.
Input() 
28.
End
Die Datei ist übrigens etwa so aufgebaut:

Infodaten (2000 Bytes)
)(&H*°§¬|¢¬|8§ v543^'^'éèSA=W@#°§¬|¢5QEàQ...

Eigentliche Daten (ca. 22 MB)
¦@#§¬°|¢§°#6fd+"*ç%*°§¬|¢¬|8§ v543^'^'éèSA@#°§¬|¢5QEàQ ...


Natürlich sind Die Messdaten nicht solche ASCI Zeichen es wird beim öffnen halt nur so dargestellt deswegen bevorzuge ich eben auch eine Hexadezimaleingabe!


Ich hoffe ihr könnt mir helfen. Wichtig ist hier vielleicht aber noch zu sagen, dass ich noch ziemlicher Anfänger in Shell bin sonst aber ziemlich gut Programmieren kann. Auch ist mein iPad natürlich Jailbrocken. Sonst hätte ich ja MobileTerminal nicht installieren können.

Mitglied: Lochkartenstanzer
23.03.2013, aktualisiert 25.03.2013
Moin,


Als allererstes solltest Du Dir die FAQs und insbesondere die Formattierungsmöglichkeiten eines Beitrages anschauen. Zumindest den Code solltest Du korrekt formattieren, damit man den auch lesen kann.

Ansonsten:

  • Den eigenen iPad zu rooten ist nicht illegal. Nur das Umgehen von korrekter Lizensierung ist illegal.

  • Wenn Du schon Deinen iPad gerootet hast, installier Dir doch einfach die Gnu-Utils wie bash & Co. und benutze das Kommandozeilentool tr zum Ersetzen der Zeichen. Warum das Rad immer neu erfinden?

lks
Bitte warten ..
Mitglied: NicoBosshard
24.03.2013 um 10:52 Uhr
Ich habe mal meinen Frage ein wenig Formatiert.

Leider habe ich tr nicht im Cydia App Store gefunden. Muss ich villeicht zuerst eine entsprechende Quelle adden?

Ich werde mal aber mein erstes Ersetzprogramm posten:

01.
sed -i 's/OCIN/NICO/g' NAME.txt
Geht eigentlich alles gut nur eben kann ich beim Befehl sed nirgens einen Startparameter angeben.

Auch bin ich froh zu wissen, dass Jailbreack doch nicht so Ilegal, wie zuerst vermutet, ist.
Bitte warten ..
Mitglied: NicoBosshard
24.03.2013, aktualisiert um 12:11 Uhr
Habe mitlerweile herausgefunden, dass ich ja gar nichts installieren muss und der Befehl tr schon die ganze Zeit vorhanden war. Nur habe ich immer noch keine Ahnung wie ich eine Startposition angeben kann!
Bitte warten ..
Mitglied: Lochkartenstanzer
24.03.2013, aktualisiert 25.03.2013
z.B. so:

dd if=infile of=outfile bs=2000 count=1 
dd if=infile            bs=2000 skip=1  |  tr "\x02" "\x48" >>outfile
lks

PS: Einrückungen erlauben es, den Code übersichtlicher zu gestalten. Sollte man als guter Programmierer wissen.

PPS: mit sed würde es genauso funktionieren. Allerdings ist sed nicht für Binärdaten ausgelegt.

Edit:

Fehlerhafte Zeile

dd if=infile bs=2000 seek=1 | tr "\x02" "\x48" >>outfile

korrigiert.
Bitte warten ..
Mitglied: NicoBosshard
24.03.2013 um 22:15 Uhr
Vielen Dank Lochkartenstanzer es sieht schon gut aus. Leider gibt es noch folgenden Fehler: "dd 'standard output': cannot seek: Illegal seek". In der Ausgabedatei ist danach aber wenigstens schon die ersten 2000 Bytes zu sehen. Wenn ich seek weglasse wird übrigens alles ersetzt.

Ob die Datei danach beschädigt ist konnte ich leider nicht mehr testen, da mein ganzes iPad ist komplett abgestürzt ist (nur noch Apfel und Ladebalken wie bei einem Update). Der Absturz Grund ist mir noch unbekannt, ich bin aber fast 100% sicher, dass er nicht durch dieses Programm verursacht wurde.

Glücklicherweise habe ich meine SHSH Kays gesichert, dank denen ich es wider auf der Version iOS 6.1.2 Wiederherstellen und von neuem Jailbreacken. Leider wird das einige Tage dauern. Bis dahin bin ich natürlich weiter froh um alle Antworten, die mir helfen dieser seek Fehler noch zu verbessern.
Bitte warten ..
Mitglied: Lochkartenstanzer
24.03.2013 um 22:25 Uhr
Sorry, sollte skip statt seek heißen. Freudscher Vertipper. Aber ein kurzes man dd hätte es zutage gefördert.

lks
Bitte warten ..
Mitglied: NicoBosshard
24.03.2013 um 22:30 Uhr
Herzlichen Danke, ich werde es testen sobald mein iPad wieder läuft.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
In txt file an bestimmter Position zeichen ersetzen, Ideen ?
gelöst Frage von buliwyfBatch & Shell7 Kommentare

EIn freundl. Hallo all ;-) mein Anliegen was mich jetzt 2 Tage beschaeftigt ist : wie kann ich in ...

Batch & Shell
Shell Script nach bestimmten Zeilen in einer Datei suchen
gelöst Frage von windelterroristBatch & Shell4 Kommentare

Hallo, Ich würde gerne wissen, wie ich im Shell Script nach einer Zeile in einer bestimmten Datei (z.B. test01) ...

Linux
Shell Script, Script ausführen in einem Zeitfenster
Frage von webstorLinux2 Kommentare

Hi, ich bin wieder mal lästig. ;-) ich habe ein Script das in einem Zeitraumen von als Bsp in ...

Batch & Shell
Bash Shell Script lernen
gelöst Frage von RobJoe25Batch & Shell4 Kommentare

Hallo Administrator-Community, ich habe eine Frage. Kennt jemand gute Homapage´s (am besten auf Deutsch) oder gute Bücher, wie ich ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 5 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 6 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...