
Quiero encontrar texto dentro de un patrón de cadena de un archivo de datos y extraerlo en una lista de texto usando Shell o AppleScript.
Un ejemplo dentro de XML:
node file="source_files/ (var1) .mp3"
Otro ejemplo dentro de HMTL:
src="http:// (example.com) /dir/ (var2) .txt"
Salida deseada:
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
Mi pregunta es la siguiente: ¿cómo voy a buscar, encontrar y extraer la serie de todas las cadenas dentro de un archivo de texto que tienen el patrón específico de caracteres antes, después o ambos?
Respuesta1
¿Qué tal si usamos el siguiente grep
comando?
grep -Po '(?<==")[^"]+(?=")'
Esto extraerá cadenas entre comillas dobles que aparecen después de los signos iguales. Aquí está en acción:
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
Respuesta2
grep -F 'node file="source_files/example1.mp3"'
grep -F 'src="http://example2.com/dir/example2.txt"'