Portál AbcLinuxu, 13. listopadu 2025 11:53
Ahoj_X_-_s01x20_Ahoj_svete Ahoj_X_-_s04x03_Ubuntu
Řešení dotazu:
sed "s/\(x[0-9]*\)_.*/\1/"
Ale určitě přijde nějaký minimalista a vymyslí to ještě efektněji/efektivněji
s/^(Ahoj_X_-_s\d{2}x\d{2}_).*$/$1/
Pokud na místě 01, 20, 04 a 03 mohou být libovolné dvojice číslic.
s/^\(................\).*/\1/
s/(?<=\d\d[ex]\d\d).*$//i; # s ponechanim pripony s/(?<=\d\d[ex]\d\d).*(?=\.[^.*]$)//i;
<pre>Ahoj_X_-_s01x20_<b>Ahoj_svete</b> Ahoj_X_-_s04x03_<b>Ubuntu</b></pre>tedy:
Diky... Tak to potom suhlasim s l4m4 - nato nie je potrebny ziaden regex (ak sa nemeni nazov serialu)... staci odseknut prvych N znakov a priradit do vydlenej premennej.
Prip. ak sa nazov serialu meni tak do vyslednej premennej priradit match #1 regexu:
/^(.*s\d+x\d+_)/t.j. v Perle by to vyzeralo takto:
($text_line) = $text_line =~ /^(.*s\d+x\d+_/Priradzovanie regex zhody do premennej je neporovnatelne rychlejsie nez substitucny regex.
Tak to máš nějakej divnej prohlížeč ne ?
, tam není opravdu vidět ten bold (ve FF a Chrome, zas běžně (ne)nastavých) - aspoň u mě
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.