0

NAME.el.srt で終わるすべての字幕を検索し、NAME.srt の形式でそれらのシンボリック リンクを作成するシェル コマンド (Linux) を作成しようとしています (そこから .el を削除します)。

使用:

/usr/bin/find /volume1/public/test -follow -type f \( -iname "*.el.srt" \)

次の結果が得られます。

/volume1/public/test/Arrow - S01E04.el.srt

/volume1/public/test/Arrow - S01E01.el.srt

/volume1/public/test/Arrow - S01E02.el.srt

/volume1/public/test/Arrow - S01E03.el.srt

名前を変更したくありません。オリジナルと同じフォルダーにシンボリックリンクを作成したいだけです。

簡単に撮れるだろうと思っていましたが...4時間経った後、私を助けてくれるもっと経験豊富な人を探しています:)ついに見つけました:

IFS=$(echo -en "\n\b");

for j in $(find /volume1/video -follow -type d -name "*");
do
cd $j;
for i in $(find $j -name "*.el.srt" -maxdepth 1 -exec basename {} \;);  
do 
  rname=$(echo "$i" | sed -e 's/\.el\.srt/\.srt/g'); 
  ln -s "$i" "$rname";
done
done

私を正しい方向に向けてくれてありがとうiamuser :)

4

1 に答える 1

0

これを行うには、単純な for ループを試すことができます。

IFS=$(echo -en "\n\b");
for i in $(find . -name "*.el.srt"); 
do 
  rname=$(echo "$i" | sed -e 's/\.el\.srt/\.srt/g'); 
  ln -s "$i" "$rname";
done

.el.srt現在のディレクトリでで終わるすべてのファイルをループします。ファイルごとに、部分を除いたrname拡張子を持つ一時変数を作成します。次に、とのシンボリックリンクを行います。.srt.elln -s

于 2013-08-30T15:32:04.600 に答える