Portál AbcLinuxu, 19. března 2024 06:12
DATA="Ahoj&Svete!" while IFS="&" read A B ; do echo "$A $B" done <<< $DATA # OUTPUT: "Ahoj Svete!"Problémem je, že do proměnné
IFS
nelze vložit řetězec, ale vždy jen jeden znak. Potřeboval bych však psát něco takového:
DATA="AhojANDSvete!" while IFS="AND" read A B ; do echo "$A $B" done <<< $DATA # OUTPUT: " hojANDSvete!"Z výstupu jasně plyne, že
IFS
může obsahovat jen jeden znak. Rád bych měl funkci SPLIT
, která by byla jakýmsi "workaroundem" a umožnila mi asi takovýto zápis:
DATA="AhojANDSvete!" while SPLIT "AND" A B ; do echo "$A $B" done <<< $DATA # OUTPUT: "Ahoj Svete!"Nebo nějak podobně. Jde mi o tu funkci
SPLIT
.
Bohužel se mi ne a ne podařit takovou funkci v čistém BASHi napsat. AWK, SED ani jiný nástroj z různých důvodů nemohu použít. Jen čistý BASH. Děkuji za vaše nápady.
string="${string//AND/|}" IFS="|"ale nesmíš v tom řetězci mít |, což asi máš, jinak by ses takhle neptal...
man bash
.
Děkuji.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.