2016-11-21 9 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必要なディレクトリを作成

E01が、それはへのリンクを作成しようとする文字列に存在しない場合:

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

それは、その後へのリンクが作成されますので、どのように私は私のコードを書くことができます:たぶん

~/TV/super.show/s01 
+1

シンボリックリンクを作成するには本当に 'parallel'が必要ですか? 'while'ループを使ってコードを読み込み可能なものに書き直すと、単に' mkdir -p'を使うことができます。 – kay

+0

よくわからない。私は 'grep'の出力を使用してリンクのサブディレクトリを作成するリンクを作成したいのですが、それを' parallel'で行うことができました。これは簡単にできますか? – angelsen

+0

@ mklement0私は 'xargs -i {}'を試しましたが、 'grep'からのいくつかの出力のために' {} '変数を取得しています。 – angelsen

答えて

1

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

GNU 'parallel'は入力を修正するこのメソッドを呼び出します[Perl式置換文字列](https://www.gnu.org/software/parallel/parallel_tutorial.html#置換文字列)。 – mklement0

関連する問題