이번이 이 글을 쓰려는 20번째 시도이지만, 항상 엄청난 일이 되기 때문에... 짧게 유지하도록 노력하겠습니다.
기본적으로 내가 하고 싶은 것은 Deluge 토렌트 클라이언트 콘솔의 출력(토렌트가 추가되거나 완료될 때 폴더의 경로와 이름)을 가져오는 스크립트를 작성하여 내 멍청한 기술을 한계까지 밀어붙이는 것입니다. 하드 링크 토렌트에 있는 모든 파일의 경우 기존 파일 이름과 경로의 다양한 부분을 기반으로 이름을 지정합니다.
기존 다운로드 경로와 파일 이름에는 각 하드 링크 이름에 대해 동일한 몇 단어를 제외하고 필요한 모든 것이 포함되어 있습니다(즉, 각 하드 링크 이름의 시작 부분에 "The"가 추가됩니다). 또한 파일 이름의 특정 부분을 스크립트에서 정의할 수 있는 텍스트 조각으로 바꿔야 합니다(예: "One"을 "1"로 바꾸거나 "Foos.Bar"를 "Foos' Bar"로 바꾸기). 새 하드 링크의 이름이 Plex의 명명 규칙을 따르도록 폴더 경로와 파일 이름에서 파생된 다양한 정보를 다시 정렬해야 합니다.
스크립트에서 고려해야 할 또 다른 중요한 점은 대상 폴더에 하드 링크가 아직 없는 경우에만 하드 링크를 생성해야 한다는 것입니다. 문제의 토렌트의 여러 버전이 일주일 이내에 출시되고 각 버전이 폴더에 추가 파일을 추가한다는 사실로 인해 상황이 복잡해졌습니다.
deluge-console을 사용하여 $torrentpath/$torrentname을 파일로 출력할 수 있지만 지금 당장 어디로 가야 할지 모르겠습니다.
누구든지 내가 취해야 할 다음 단계나 어떤 쉘 도구를 사용해야 하는지에 대한 올바른 방향을 알려줄 수 있다면 필요한 만큼 발품 작업을 기꺼이 수행할 것입니다.
[편집 1]
if [[ $torrentname == "Name.*.of.Torrent.1080P" ]] then ;
cd $torrentpath/$torrentname
#the follwing gives just the YYYY from a the uploader's filename.
Eyear=$"ls 01* | sed -r 's/.{6}//; s/(.{4}).*/\1/'"
[편집 2]
나는 대부분의 질문에 대답했지만 내가 생각해낸 정확한 해결책(정규식 기반)은 게시하지 않을 것입니다. 왜냐하면 모든 것이 내 특정 시나리오(폴더 구조 및 내가 다운로드한 토렌트 이름)에 따라 다르기 때문입니다. 그러나 일반적인 개요를 설명하겠습니다.
원하는 변수를 설정하기 위해 ls
다양한 sed
및/또는 awk
정규식 명령과 파이프를 사용하고 있습니다(또는 "사용"해야 합니까?). 이러한 명령이 작동하여 제가 사용하는 두 업로더에서 사용하는 서로 다른 명명 체계와 함께 작동하므로 Plex 명명 체계(나머지 항목)를 준수하는 이름을 만드는 데 필요한 대부분의 정보를 얻을 수 있습니다. 이름은 간단히 삽입할 수 있는 표준 텍스트입니다.
작동하는 스크립트를 작성한다는 목표를 달성하려면 원래 질문의 범위를 훨씬 넘어서는 질문에 대한 답을 찾아야 했습니다. 따라서 이 스레드를 해결된 것으로 표시하기 전에 마지막으로 말하고 싶은 것은 당신이 나와 같은 입장에 있고 파일 이름과 해당 폴더 경로에서 연구 sed
, awk
정규식 및 파이프 문자열을 추출하려는 경우입니다...
sed
파일 이름에서 문자열을 추출하고 텍스트를 수정하는 데 사용됩니다.
awk
(파이프를 통해 입력 sed
) 폴더 경로에서 문자열을 추출합니다.