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