(gelöst) bash: immer 2 Zeichen von Zeichenkette ausgeben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ren22

(gelöst) bash: immer 2 Zeichen von Zeichenkette ausgeben

Beitrag von ren22 » 06.12.2019 19:11:09

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!
Zuletzt geändert von ren22 am 07.12.2019 14:02:05, insgesamt 2-mal geändert.

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: bash: immer 2 Zeichen von Zeichenkette ausgeben

Beitrag von JTH » 06.12.2019 19:49:31

ren22 hat geschrieben: ↑ zum Beitrag ↑
06.12.2019 19:11:09
Kann mir jemand ein Tip geben wie das am einfachsten geht?
Sogar drei Hinweise:

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.

Benutzeravatar
Meillo
Moderator
Beiträge: 9225
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: bash: immer 2 Zeichen von Zeichenkette ausgeben

Beitrag von Meillo » 06.12.2019 20:06:21

Nach jeweils zwei Zeichen ein Newline einfuegen:

Code: Alles auswählen

sed 's/../&\n/g'
Use ed once in a while!

ren22

Re: bash: immer 2 Zeichen von Zeichenkette ausgeben

Beitrag von ren22 » 06.12.2019 20:59:04

Meillo hat geschrieben: ↑ zum Beitrag ↑
06.12.2019 20:06:21
Nach jeweils zwei Zeichen ein Newline einfuegen:

Code: Alles auswählen

sed 's/../&\n/g'
geiler Code! Perfekt , genau das was ich brauche :-)
Somit kann ich auch gleich die Zeichenkette in Shellcode umwandeln.

Code: Alles auswählen

sed 's/../\\x&/g'
Vielen Dank an alle!

Antworten