데이터 파일에서 문자열 패턴 내의 텍스트를 찾아 쉘이나 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"'