Portál AbcLinuxu, 8. května 2025 22:58
dobrz den, mam takovyto vystup
open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=26050, ...}) = 0
mmap(NULL, 26050, PROT_READ, MAP_SHARED, 3, 0) = 0x7f5cd2c69000
close(3) = 0
a potrebuji z toho dostat jen to co je mezi uvozovkami na radku, ktery zacina na slovo open, vystupem po sedu by tedy melo byt: /usr/lib64/gconv/gconv-modules.cache
moje reseni: sed -n 's/.*open"\([^"]*\)".*/\1/p' -----nefunguje
.* je maximalne zrava, namatchuje na cely radek. dej tam neco jako sed -n 's/[[:space:]]*open"\([^"]*\)".*/\1/p'
Řekl bych že ten regulární výraz máte špatně. Za open chybí znak závorka.
strace -eopen programis your friend.
sed -r -e 's/open\("([^"]+).*/\1/'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.