Hallo,
wie kann ich von einer Zeichenkette mir immer zwei Zeichen ausgeben lassen, mittels bash, solange bis das Ende der Zeichenkette erreicht ist?
ZEICHENKETTE="AABBCCDDEEFFGGHH"
als Ausgabe sollte sein:
AA
BB
CC
DD
usw. .. bis zum Ende der Zeichenkette.
Kann mir jemand ein Tip geben wie das am einfachsten geht?
*Die ausgegeben Zeichen "AA/BB..usw." muss ich später noch weiterverwenden können, weil am Ende das Script eine Zeichenkette erzeugen soll die so dann in etwa ausschaut:
\xAA\xBB\xCC\xDD ... usw.
Vielen Dank!
(gelöst) bash: immer 2 Zeichen von Zeichenkette ausgeben
(gelöst) bash: immer 2 Zeichen von Zeichenkette ausgeben
Zuletzt geändert von ren22 am 07.12.2019 14:02:05, insgesamt 2-mal geändert.
Re: bash: immer 2 Zeichen von Zeichenkette ausgeben
Sogar drei Hinweise:ren22 hat geschrieben:06.12.2019 19:11:09Kann mir jemand ein Tip geben wie das am einfachsten geht?
read -n kann eine fixe Anzahl Zeichen von stdin einlesen:
Code: Alles auswählen
$ read -n2 two_chars <<< "aabbcc"
$ echo "$two_chars"
aa
Eine while-Schleife wird gerne mit read und einem reingepipten/umgeleitetem Input verbunden.
Mit einem Here-String kann man den Inhalt einer Variablen auf den stdin eines Kommandos – und einer while-Schleife – umleiten, siehe read-Beispiel oben.
Die Kombination überlass ich mal dir
Manchmal bekannt als Just (another) Terminal Hacker.
Re: bash: immer 2 Zeichen von Zeichenkette ausgeben
Nach jeweils zwei Zeichen ein Newline einfuegen:
Code: Alles auswählen
sed 's/../&\n/g'
Use ed once in a while!
Re: bash: immer 2 Zeichen von Zeichenkette ausgeben
geiler Code! Perfekt , genau das was ich braucheMeillo hat geschrieben:06.12.2019 20:06:21Nach jeweils zwei Zeichen ein Newline einfuegen:Code: Alles auswählen
sed 's/../&\n/g'
Somit kann ich auch gleich die Zeichenkette in Shellcode umwandeln.
Code: Alles auswählen
sed 's/../\\x&/g'