Portál AbcLinuxu, 5. května 2025 19:31
abc2def
do jedný proměnný abc
a do druhý def
. Předpokládám, že mi s tím pomůže awk
, ale opravdu ho nemůžu (ani s pomocí manuálu) pochopit.
[15:22:40]-[~]- [tsunami@vodik]$ cut -d2 -f 2 <<< neco2nekam nekam [15:22:42]-[~]- [tsunami@vodik]$ cut -d2 -f 1 <<< neco2nekam neco
what=neco2nekam prefix=${what%2*} sufix=${what#*2}
from=${0%2*} to=${0#*2}
# what=neco2nekam # prefix=${what%2*} bad substitution
$ exec /usr/xpg4/bin/sh $ what=neco2nekam $ prefix=${what%2*} $ echo $prefix neco $
<<<
je specialita bash
a sh
to nezná. Přitom zápisecho -n cosik | someje ekvivalentní a přitom přenositelný.
echo
je interní příkaz a žádný fork()
to neudělá.
mp32flac|mpc2flac|ogg2flac|wma2flac) # a mnoho dalších formátů :) $(echo $1 | cut -d2 -f1)2wav wav2$(echo $1 | cut -d2 -f2) ;; wav2flac|wav2ogg|wav2mp3|wav2mpc) wav2$(echo $1 | cut -d2 -f2) ;; mp32wav|mpc2wav|ogg2wav|wma2wav) $(echo $1 | cut -d2 -f1)2wav ;;
{ogg2wav,wav2ogg}) # (vím, že je to nesmysl, proto se ptám jak to udělat) $(cut -d2 -f1 <<< $1)2wav wav2$(cut -d2 -f2 <<< $1) ;;namísto
ogg2wav) $(cut -d2 -f1 <<< $1)2wav wav2$(cut -d2 -f2 <<< $1) ;; wav2ogg) $(cut -d2 -f1 <<< $1)2wav wav2$(cut -d2 -f2 <<< $1) ;;Prostě abych to nemusel rozepisovat a mohl narvat hafo výrazů k jedný funkci.
*)
, ale to musí mít nápověda.
???*2???*) # aby bral jen s dvojkou uprostřed # a kolem min. 3 znaky z obou stran *) # nápověda
$ help case case: case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac Selectively execute COMMANDS based upon WORD matching PATTERN. The `|' is used to separate multiple patterns. ^^^
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.