Portál AbcLinuxu, 14. července 2025 21:28
S kterou casti zadani si nevis rady? Pouzij PERL, pokud si muzes zvolit jazyk .
ls|perl -nle '($f=$_)=~tr/A-Z/a-z/;symlink$_,$f if/^[A-Z0-9_]+\.EXT$/'kde EXT nahradíš příslušnou koncovkou (já vím, že to jde napsat i čitelněji, ale je to přece Perl, tak mu nebudu kazit image ;-)
E=$1 ls | sed -n 's/^\([A-Z_0-9]*\)\.'$E'$/\1/p' | tee temp1 | tr A-Z a-z >temp2 sed 's/^/ln -s /;s/$/\.'$E'/' temp1 >temp3 sed 's/$/\.'$E'/' temp2 >temp4 paste temp3 temp4Skus, ci to robi dobre. Ak hej, za parameter skriptu napis | sh
Jasne. Citelnejsi verze nemenici priponu a prebirajici priponu jako parametr by mohla vypadat napriklad takto
ls|perl -e '$e=shift@ARGV;while(<>){chomp;symlink$_,lc($1).$e if/^([A-Z0-9_]+\.)$e$/}' jpg
Jen mi nejde do hlavy, jak bys prevzal priponu jako parametr z prikazove radky. Pokud pouziji prepinac -n, tak se jej perl bude snazit interpretovat jako jmeno souboru co ma otevrit...
Aaaaa ja hlava dubova. Ze jsem to prehledl . Napriklad takto
ls|perl -nle '$e=shift@ARGV if!$e;symlink$_,lc($1).$e if/^([A-Z0-9_]+\.)$e$/' - jpg
Pak ale shori v pripade, ze je adresar prazdny, takze jeste pridat parametr -a pro ls.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.