Portál AbcLinuxu, 5. listopadu 2025 20:28
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
Díky.
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
$
Ale /bin/sh to neumí
<<< 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.
Použil bych *), 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.