
Quero encontrar texto dentro de uma string Pattern de um arquivo de dados e extraí-los em uma lista de texto usando Shell ou AppleScript.
Um exemplo dentro de XML:
node file="source_files/ (var1) .mp3"
Outro exemplo dentro de HTML:
src="http:// (example.com) /dir/ (var2) .txt"
Saída desejada:
1.1 source_files/example1.mp3
1.2 source_files/blah.blah
2.1 http://example.com/dir/example2.txt
2.2 http://example.com/dir/blah.blah
Minha dúvida é a seguinte: como vou pesquisar, encontrar e extrair a série de todas as strings dentro de um arquivo de texto que possua o padrão específico de caracteres antes, depois ou ambos?
Responder1
Que tal usar o seguinte grep
comando:
grep -Po '(?<==")[^"]+(?=")'
Isso extrairá strings entre aspas duplas que aparecem após sinais de igual. Aqui está em ação:
user@host:~$ echo 'node file="source_files/example1.mp3"' \
| grep -Po '(?<==")[^"]+(?=")'
source_files/example1.mp3
user@host:~$ echo 'src="http://example2.com/dir/example2.txt"' \
| grep -Po '(?<==")[^"]+(?=")'
http://example2.com/dir/example2.txt
Responder2
grep -F 'node file="source_files/example1.mp3"'
grep -F 'src="http://example2.com/dir/example2.txt"'