Portál AbcLinuxu, 17. července 2025 18:56
sed -e "s/soubor/${file//\//\\\/}/g" foft.m.bak > foft.m;To je moje oblíbené
file="${file/\\/\\\\}" sed -e "s/soubor/${file/\//\\\/}/g" foft.m.bak > foft.m;Pokud ale octave používá \ jako escape znak, tak by to muselo být
file="${file/\\/\\\\\\\\}" sed -e "s/soubor/${file/\//\\\/}/g" foft.m.bak > foft.m;Pokud požívá jiný escape znak, tak se pochopitelně musí ještě oecapovat příslušný znak, že
touch ahoj\ vole\ \&\ rm\ -rf
ale stejně se mi to nějak nedaří rozes...$ ls ahoj* ahoj vole & echo kuku $ for i in ahoj*; do echo $i;done ahoj vole & echo kuku $
/vzorek/{ prikaz; prikaz; }
soubor
tohle (je to setříděné podle první položky):
luser:je máčka a odpad pepa:ten tu nemá účet, takže se nevypíše root:je největší king yeti:je taky kingtak mi stačí
sort /etc/passwd | join -o 1.6,2.2 -t: - souboraby mi to vypsalo (položka 6 v
/etc/passwd
je home)
/home/luser:je máčka a odpad /root:je největší king /home/yeti:je taky kingsložitejší možnosti mohou vyžadovat něco setřídit nebo v tom změnit delimitery předem (případně on-the-fly zároveň se sortem), takže už to třeba nebude one-liner, ale princip je stále stejný. jasný?
#!/bin/bash while read line; do user=${line%% *} echo ${line/$user/`grep ^$user: /etc/passwd`} done < $1
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.