Dle plánu byl vývoj Firefoxu přesunut z Mercurialu na Git. Oficiální repozitář se zdrojovými kódy je na GitHubu.
V terminálovém multiplexoru GNU Screen byly nalezeny a v upstreamu ve verzi 5.0.1 už opraveny bezpečnostních chyby CVE-2025-23395, CVE-2025-46802, CVE-2025-46803, CVE-2025-46804 a CVE-2025-46805. Podrobnosti na blogu SUSE Security Teamu.
Training Solo (Paper, GitHub) je nejnovější bezpečnostní problém procesorů Intel s eIBRS a některých procesorů ARM. Intel vydal opravnou verzi 20250512 mikrokódů pro své procesory.
Byla vydána nová verze 25.05.11 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Svobodný elektronický platební systém GNU Taler (Wikipedie, cgit) byl vydán ve verzi 1.0. GNU Taler chrání soukromí plátců a zároveň zajišťuje, aby byl příjem viditelný pro úřady. S vydáním verze 1.0 byl systém spuštěn ve Švýcarsku.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 209. brněnský sraz, který proběhne tento pátek 16. května od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Jelikož se Brno stalo jedním z hlavních míst, kde se vyvíjí open source knihovna OpenSSL, tentokrát se OpenAlt komunita potká s komunitou OpenSSL. V rámci srazu Anton Arapov z OpenSSL
… více »GNOME Foundation má nového výkonného ředitele. Po deseti měsících skončil dočasný výkonný ředitel Richard Littauer. Vedení nadace převzal Steven Deobald.
Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.
Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.
Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.
Řešení dotazu:
Ten popis je dost zmatený, ale patrně vám jde o zpětnou referenci. V tomto nejjednodušším případě
sed -e 's/regex/s&k/'
a muzu se jeste zeptat kdyz mam haldu vnitrnich prikazu -e jestli to muzu nejak psat na vice radku a ne na jeden za sebou...
prípadne jestli kdyz spustim sed -e ....-e .... s explicitnim netisknutim a na dalsi radek dalsi sed -e se zbylými prikazy, tak bude ten druhej sed provadet upravy na puvodnim souboru, nebo uz na tom predspracovanym?
Díky za odpoved1. Continuation line (to je záležitost shellu, ne sedu):
sed -e '...' \ -e '...' \ -e '...'
2. Jestli myslíte
... | sed -e '...' | sed -e '...'
tak tam druhý sed pochopitelně zpracovává až výstup toho prvního (nic jiného ani nedostane).
[[:upper:][:digit:]_]+
Tedy alespoň pro extended regular expressions (u GNU sedu přepínač -r
). Pro basic regular expressions by mělo stačit dát před plus backslash, ale stoprocentně jistý si nejsem.
potrebuju aby to bylo co nejvic prenositelny, ale i tak to [[:upper:][:digit:]_]+ nefunguje..ani s -r a ani s \+
:(:( ale jestli jsem dobre pochopil syntaxi tak by mozna slo [[A-Z][0-9]_]\+ nebo se pletu?[A-Z0-9_]\+
LC_COLLATE=C sed ...Možná když jde o tu přenositelnost tak nějaký starší sed by to mohl brát z
LANG
či LC_ALL
, nevím.
jo tohle dost pomohlo, porad mam problem ze ikdyz pouziji
LC_COLLATE=C sed -e "s/[A-Z0-9_]\{2,\}/bla bla & bla bla/g"tak mi to krome smyslenych vzorku typu ASV_4R OC4X RT_W najde i posloupnosti cisel..coz nechci
kazda rada draha :))Tedy jedna se mi o konstanty, tudiz predpokladejme ze zadna nezacina cislem
napriklad NULL ...posloupnost velkych pismennebo ARCH_SET_FS ...kombinace s podtrzitky
pripadne s cisly ...ale ted me tak napada nejsem si jistej jestli sou tam i dvojciferny cisla ...ale to neresi to ze mi to vybira i cisla uplne jiny .... ale mozna by to slo resit tim ze bych to rozepsal -> dá se v sedu v regularnim vyrazu psat nebo?? jako svislice? ze bych napsat s/[A-Z_]\{2,\} | [A-Z_]\+[0-9] atd...Tedy jedna se mi o konstanty, tudiz predpokladejme ze zadna nezacina cislem
V tom případě máte řešení v minulém příspěvku. Pokud chcete napsat něco jiného, budete muset napsat co. Nejsme jasnovidci, abychom poznali, co asi tak můžete chtít, když to nenapíšete.
dá se v sedu v regularnim vyrazu psat nebo?? jako svislice?
Co si takhle přečíst specifikaci?
omlouvam se prehlidl jsem ... po uprave na [A-Z_][A-Z0-9_]\{2,\} to snad pojme vsechny varianty :)V tom případě máte řešení v minulém příspěvku.
specifikaci? zkousel jsem to hledat v manualu ale bez zdarneho vysledku O=)Co si takhle přečíst specifikaci?
mohl bych se jeste zeptat v pripade te zpetne reference &, jde pouzit jen cast?
dejme tomu ze mam nejaky vzorek ale potrebuju z nej pouzit jen cast, napriklad bez prvniho, resp. posledniho znaku (poctu znaku) ...na príkladu světak z toho potrebuju dostat jen věta, nebo spis prakticky nahradit s a k jinymi znaky(retezci)snad je srozumitelne co potrebuji :)
hmm... mozna na tom neco je, ale at hledam jak hledam, stale nenachazim
jediny co me napadlo je konstrikce:
coz by z nalezeneho vyrazu melo odstrihnout levou kulatou zavorku, ale nejak jsem to nezprovoznil
A co tohle?
s/regexp/replacement/ Attempt to match regexp against the pattern space. If success‐ ful, replace that portion matched with replacement. The replacement may contain the special character & to refer to that portion of the pattern space which matched, and the special escapes \1 through \9 to refer to the corresponding matching sub-expressions in the regexp.
Mně to funguje správně:
mike@lion:~> sed -r "s/ (([a-z][a-z0-9_]*)\()/ neco \2 neco /g" f1(a) + f2(b) f1(a) + neco f2 neco b)
Co to vrátí vám?
jj, tohle mi uz taky funguje, nevsiml jsem si ze v replacement
se odkazuji dvakrat a po vsech zkouskach sem jednou nahradil jako \2 ale jedou jsem tam zapomnel & ...
LC_NUMERIC=C sed -e "s/[[:digit:]][,)]/ neco & neco /g"
coz by ve vstupnim textu melo najit cislo nasledovane carkou nebo zavorkou, coz se taky deje, JENZE kdyz mam treba 0) 0, -1, tak mi to u tý -1 neoznaci tu carku...jo jasne -r :))
neni jeste nejaky jednoduchy zpusob jak vypreparovat prave ten rozdil mezi \1 a \2 ?Na tohle LC_NUMERIC mít vliv nebude, rozlišování tříd znaků se děje podle LC_CTYPE.
Mimochodem, když vidím, co provádíte, nechcete se rovnou podívat na (f)lex?
[[:digit:]]
' (ani '[[:digit:]]+
'). To byste musel použít '-?[[:digit:]]+
'.
sed
.
LC_CTYPE
a při '[A-Z]
' LC_COLLATE. LC_ALL
je ale samozřejmě jistota.
Teď mi není jasné, co úplně přesně chcete, ale jestli jde o to, aby se substituce provedla jen na řádcích obsahujících vzorek $2, tak
sed -e "/$2/ s/pattern/replacement/"
Ale je potřeba ošetřit situaci, kdy by $2
obsahoval lomítko. Jestli jsem něco nepřehlédl, v bashi by mohlo stačit
sed -e "/${2//\//\\/}/ s/pattern/replacement/g"
No vyskyt lomitka resit nemusim, to tam urcite nebude, ale i tak pri pouziti
sed -e "/$2/ s/pattern/replacement/" tohle hlasí syntaktickou chybu a v prípade ..$2 /s/... to oznaci a nahradi i radky bez vzorku $2..jo, to chapu, ale kdyz mam:
ahoj ahoj ahoj cau ahoj nazdarahoj ahoj ahoj cau ahoj cau
a sed -e "/$2/ s/pattern/replacement/ kde $2 je nazdar, pattern je cau, a replacement je taky ahojtudiz sed -e "/nazdar/ s/cau/ahoj/g" by mi melo vstup predelat na:
ahoj ahoj ahoj ahoj ahoj nazdarahoj ahoj ahoj cau ahoj cau
problem je v tom ze vsechny "cau" tedy pattern jsou zmeneny na replacement, bez ohledu na vyskyt toho $2tak nevim kde je chyba
Z toho, co píšete (a hlavně co nepíšete0, těžko hádat, kde děláte chybu, ale prostě to funguje:
mike@lion:~> sed -e "/nazdar/ s/cau/ahoj/" <<EOT ahoj ahoj ahoj cau ahoj nazdar > ahoj ahoj ahoj cau ahoj cau > EOT ahoj ahoj ahoj ahoj ahoj nazdar ahoj ahoj ahoj cau ahoj cau
Hint: příště nepište "ono to nefunguje", ale raději zcela konkrétně napište, co jste zkusil, jak to dopadlo a případně jak si myslíte, že to mělo dopadnout.
Nic mene ted se mi to uplne slozilo a ani ten skript nemuzu rozjet pise mi to bash: ./skript.sh: /bin/bash^M: chybny interpretr: Adresar nebo soubor neexistuje
unix2dos
, a pokud ano, použijte ji.
dos2unix skript.sh sed -i -e 's/$/\r/' skript.sh tr -d \\r < skript.sh > skipt2.shDěkuji že jste mě opět obšťastnil hláškou "hodi mi to nejakou chybu syntaxe zase", ale hlavně že vám to teda alespoň na FreeBSD funguje.
tohle fungujedos2unix skript.sh
a to s tim
Děkuji že jste mě opět obšťastnil hláškou "hodi mi to nejakou chybu syntaxe zase", ale hlavně že vám to teda alespoň na FreeBSD funguje.na to sem odpovidal na konci
dnes 10:23 thinkdeep Re: sed +promenna Odpovědět | Označit jako řešení | Sbalit | Výše | Link | Blokovat | AdminChapu, chapu...ten problem sem preskocil kdyz mi to jede na jinym stroji, kdezto tady ne. tedy:
sed: -e vyraz c.1, znak 2: nadbytecne znaky po prikazu
dulezitejsi, je proc nemuzu spustit ten skript vubec, ...to je tak kdyz aktualizuju system aniz by to bylo potreba :/ uz mi nejdou ani namountovat slozky
sed -i -e "s/\r//" skript.shto výše uvedené dělá přesný opak :)
sed: -e vyraz c.1, znak 2: nadbytecne znaky po prikazu
dulezitejsi, je proc nemuzu spustit ten skript vubec, ...to je tak kdyz aktualizuju system aniz by to bylo potreba :/ uz mi nejdou ani namountovat slozky
echo $dva nazdar bash$ LC_MESSAGES=C sed -e "/$dva/ s/cau/ahoj/" <<EOT ahoj ahoj ahoj cau ahoj nazdar ahoj ahoj ahoj cau ahoj cau EOT sed: -e expression #1, char 2: extra characters after commanda zkoušel jste to v nějakém skriptu a ne přímo v příkazové řádce, tak to může souviset s těmi nadbytečnými CR, pokud se tam na koncích řádků motají. Příklad je jen ilustrativní, reálně mi to žádnou chybu nehází.
LC_MESSAGES=C
byl zakopan pes :)) jeste to zkusim v tom skriptu :)
LC_MESSAGES=C
na ten příkaz, jehož výstup pak parsoval sedem.
Problem je trosku jinde...kdyz zadam to natvrdo co chci hledat, tedy nazdar, tak mi to najde, ale kdyz pomoci promene $2, tak uz ne...
a promenou sem si nechal vypsat, takze vim, ze v ni je to co potrebuji...takze kdyz tam necham promenou vypisuje mi sed(ve skriptu): -e expression #1, char 0: no previous regular expression
ale(mimo skript)
thinkdeep@ThinkDeepers:~$ echo $promena
nazdar
thinkdeep@ThinkDeepers:~$ LC_MESSAGES=C sed -e "/$promena/ s/cau/ahoj/" << baf
> ahoj ahoj ahoj cau ahoj nazdar
> ahoj ahoj ahoj cau ahoj cau
> baf
ahoj ahoj ahoj ahoj ahoj nazdar
ahoj ahoj ahoj cau ahoj cau
bash$ sed -e "// s/cau/ahoj/" <<EOT ahoj ahoj ahoj cau ahoj nazdar ahoj ahoj ahoj cau ahoj cau EOT sed: -e expression #1, char 0: no previous regular expressionnebylo by možné, že v té proměnné přecejen nic není (je prázdná)? Nemáte ten sed třeba v nějaké funkci? Ta má vlastní lokální číselné proměnné, nepřebírá ty globální...
vse funguje jak ma :) tedy na mim linuxu, ted to pujdu testovat na FreeBSD ..takze si moc nefandim :D
btw. je mi trochu zahadou jak se mohli soubory vytvorene v linuxu(ukladane do win) prepsat i pres to ze nebyli pod win otevreny, ale uz si to budu pamatovat pro priste :))$2
není proměnná, ale poziční parametr. Proměnné sdílí funkce se zbytkem skriptu, pokud nejsou explicitně deklarovány jako lokální (pomocí local
). Oproti tomu poziční parametry ve funkci reprezentují parametry, se kterými byla volána funkce, ne parametry, se kterými byl volán skript.
pod linuxem/centOS mi to jede v poradku, ale pod FreeBSD mi to dela psí kusy :-/
uresneni problemu: prochazi i funkce, ktere by podle switche nemel prochazetFreeBSD eva ~/.../...> ./hltrace.sh -h #toto by melo vypisovat napovedu
+ getopt -o hs: -n hltrace -- -h #zpracovani parametru
+ TEMP=' -- hs: -n hltrace -- -h'
+ [ 0 != 0 ]
+ eval set -- ' -- hs: -n hltrace -- -h'
+ set -- -- hs: -n hltrace -- -h
+ true
+ shift
+ header #tady uz se to chova divne
+ echo '...'
...
+ #dalsi prikazy uvnitr fce ktera vubec nema byt vykonavana
+ tail
+ echo '...'
...
+ break
eva ~/.../...>
thinkdeep@ThinkDeepers:~/..$ ./hltrace.sh -h
+ ./hltrace.sh -h
+ getopt -o hs: -n hltrace -- -h
+ TEMP= -h --
+ [ 0 != 0 ]
+ eval set -- -h --
+ set -- -h --
+ true
+ echo #spravna funkce
...vypis napovedy..
thinkdeep@ThinkDeepers:~/..$
#!/bin/sh
set -x
TEMP=`getopt -o hs: \-n 'hltrace' -- "$@"`
if [ $? != 0 ] ; then echo "Use ./hltrace.sh -h for usage" >&2 ; exit 1 ; fi
eval set -- "$TEMP"
header () {....}
..dalsi funkce...
while true ; do
case "$1" in
-h|-H) echo "napoveda..." ; shift ; break ;;
-s|-S) header ; promena="$2" ; fce... ; shift 2 ; break ;;
--) shift ; header ; fce ; tail ; break ;;
*) exit 1 ;;
esac
done
nejaky napad?
TEMP
, v linuxu to do TEMP
přiřadi výsledek volání getopt
, ve FreeBSD to vypadá, že jen ten řetězec. Prověřte co je doopravdy přiřazeno v TEMP
, správné fungování fce getopt
a funkci zpětných apostrofů (`
) (zvažte přejít na POSIX kompatibilní formu $(...)
místo starší `...`
).
skript1
TEMP=`getopt -o hs: \-n 'hltrace' -- "$@"`
if [ $? != 0 ] ; then echo "Use ./hltrace.sh -h for usage" >&2 ; exit 1 ; fi
echo "$TEMP" ; exit 1 ;
vystup FreeBSD
eva ~/..> ./hltrace.sh -h
+ getopt -o hs: -n hltrace -- -h
+ TEMP=' -- hs: -n hltrace -- -h'
+ [ 0 != 0 ]
+ echo ' -- hs: -n hltrace -- -h'
-- hs: -n hltrace -- -h
+ exit 1
eva ~/..>
vystup Linux
+ ./hltrace.sh -h
+ getopt -o hs: -n hltrace -- -h
+ TEMP= -h --
+ [ 0 != 0 ]
+ echo -h --
-h --
+ exit 1
opravdu se tedy obsah promene lisi, ale pokud pouziji co jste psal (tedy jestli jsem to spravne pochopil)
TEMP=$(getopt -o hs: \-n 'hltrace' -- "$@")
tak
+ getopt -o hs: -n hltrace -- -h
+ TEMP=' -- hs: -n hltrace -- -h'
+ [ 0 != 0 ]
+ echo ' -- hs: -n hltrace -- -h'
-- hs: -n hltrace -- -h
+ exit 1
tak je vystup obdobny se mi zna
Tiskni
Sdílej: