2016-11-21 12 views
1
echo "super-super.show.s01.e01" | grep -oPi '(?<=-)[\w\W]+(?=\.s\d\d)|s\d\d|e\d\d' | parallel -N3 ln -sf ~/super-super.show.s01.e01 ~/TV/{1}/{2}/{3} 
# tries to make ~/TV/super.show/s01/e01 failes due to no such file or directory 

필요한 코드를 작성하도록 내 코드를 작성하려면 어떻게해야합니까?ln -s create dir

이 링크 만들려고 문자열에 더 E01가없는 경우 : 어쩌면

~/TV/super.show/s01 
+1

실제로 심볼릭 링크를 만들려면'parallel'이 필요합니까? 'while' 루프를 사용하여 코드를 읽을 수있는 것으로 재 작성하면'mkdir -p' 만 사용할 수 있습니다. – kay

+0

잘 모르겠습니다. 나는 grep의 출력을 사용하여 링크에 대한 하위 디렉토리를 만드는 링크를 만들고 싶습니다. 그리고 나는 그것을'parallel'로 관리했습니다. 이 일을 더 쉽게 할 수 있습니까? – angelsen

+0

는 mklement0 @ 난'xargs를 -i {}'로 시도했습니다,하지만 난 단지 내가 아는 한 ... grep''에서 여러 출력을 위해 우리에게'{}'변수를 얻을. 당신은 같은 이름을 사용하는 경우 – angelsen

답변

1

: 그 다음에 링크를 생성하므로

~/TV/super.show/s01/{3} 

어떻게 난 내 코드를 작성할 수 있습니다 :

echo '>>super<< 12" star*show.s01.e01.mp4' | 
    parallel --rpl '{dir} s:\.(s\d\d):/$1:; s:\.(e\d\d):/$1:; s/\....$//;' mkdir -p ~/TV/{dir}';' ln -s {} ~/TV/{dir} 
+0

추측은 이런 식으로 난을 기대하지 말아야 할 것 내가 한 줄에 원한을 할 수 있습니다. – angelsen

+1

을 멋지게 수행. 입력 A [펄 표현 대체 문자열 (https://www.gnu.org/software/parallel/parallel_tutorial.html#를 수정이 메소드를 호출 parallel' GNU를' 대체 문자열). – mklement0