Eu tenho uma string como essa
TEST="/dev/sda1 on /media/sda1 type vfat (rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1,quiet)"
(Resultado de mount | grep sda1
)
onde eu quero corresponder ao ponto de montagem. Meu regex ( adotado aqui ) é
(?<=on[ \t])(.*)(?=[ \t]type)
Mas, por alguns motivos, isso não funciona para mim com várias ferramentas (Busybox ash 1.14.2):
echo $TEST | grep -o -e '(?<=on[ \t])(.*)(?=[ \t]type)'
Não me dá resultado.
echo $TEST | awk 'match($0, /(?<=on )(.*)(?= type)/){print $0}'
Retorna um erro awk: bad regex '(?<=on[ ])(.*)(?=[ ]type)': Invalid preceding regular expression
expr match "$TEST" '\(?<=on[ \t]\)\(.*\)\(?=[ \t]type\)'
Também retorna um resultado vazio.
Eu me sinto meio idiota.