정규식에서 여러 문자열 추출

정규식에서 여러 문자열 추출

다음과 같은 줄로 구성된 파일이 있습니다.

URL=http://someURL]somefilename

일부 파일 이름이 존재하지 않으면 다운로드 URL 링크가 필요합니다. 다음과 같은 쉘 명령을 사용하고 싶습니다.

for i in $(cat FILE); do if [ ! -f somefilename] somecode; done

하지만 어떤 코드를 사용해야할지 모르겠습니다. 어떤 아이디어가 있나요?

편집: terdon의 문제를 해결하려면 예, 한 줄에 ] 하나만 있고 someURL 뒤에 하나가 있으며 예, 파일 이름은 ] 뒤 줄 끝까지의 전체 문자열입니다.

답변1

이것은 순수한 쉘 방법입니다:

while IFS='=]' read a url file; do 
    [ -f "$file" ] || echo "wget $url]$file"
done < file

이는 파일을 반복하여 각 줄을 분할하고 =]결과 필드를 변수 a(string URL), $url(url to filename) 및 $file(filename)로 읽습니다. 그런 다음 $file현재 디렉터리에 존재하지 않으면(따라서 [ -f "$file" ]false를 반환) 다운로드합니다.

관련 정보