Eu quero extrair texto de uma string que corresponda à primeira e última palavra
string é um caminho:
/path/to/the/file/app.apk(randomcharacters)
e eu quero extrair texto como
/path/to/the/file/app.apk
usando algo assim
sed '/\/path/.apk/'
apenas o comando sed necessário como resposta
Você pode usar a manipulação de string POSIX - não há necessidade de um comando externo como
sed
.Resultado
Isso necessariamente pressupõe que seus " caracteres aleatórios " não são verdadeiramente aleatórios e, portanto, não incluem a string
.apk
. Se eles podem conter essa string, mas seu caminho (prefixo) pode ser garantido para não incluí-lo, você pode substituir%
por%%
.Se seus caminhos seguirem o mesmo padrão:
.apk(somerandomcharracters)
você pode remover substituindo todos após o padrão.apk
. Existem duas maneiras de remover os caracteres desnecessários:Solução 1
O problema com o código acima é que se algum diretório contiver o padrão
.apk
ou.apk(randomchars)
a saída não será como você esperaria, por exemploSolução 2 Se você quiser evitar o problema acima, terá que usar:
A propósito, prefiro usar a resposta de roaima.