
Я хочу найти текст внутри строки Pattern из файла данных и извлечь его в текстовый список с помощью оболочки или AppleScript.
Пример внутри XML:
node file="source_files/ (var1) .mp3"
Еще один пример внутри HMTL:
src="http:// (example.com) /dir/ (var2) .txt"
Желаемый результат:
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
Мой вопрос заключается в следующем: как мне искать, находить и извлекать последовательность всех строк внутри текстового файла, которые имеют определенный шаблон символов до, после или и то, и другое?
решение1
Как насчет использования следующей grep
команды:
grep -Po '(?<==")[^"]+(?=")'
Это извлечет строки в двойных кавычках, которые появляются после знаков равенства. Вот это в действии:
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
решение2
grep -F 'node file="source_files/example1.mp3"'
grep -F 'src="http://example2.com/dir/example2.txt"'