フォルダパスとファイル名から複数のbash変数を派生させる方法は?

フォルダパスとファイル名から複数のbash変数を派生させる方法は?

今回がこの文を書こうとする20回目の試みですが、いつも途方もないことになるので... 短く保つよう努力します。

基本的に私がやりたいことは、Deluge Torrentクライアントコンソールの出力(急流が追加または完了したときにフォルダのパスと名前)を取得するスクリプトを作成して、私の愚かなスキルを限界まで引き出すことです。ハードリンク急流のすべてのファイルには、既存のファイル名とパスのさまざまな部分に基づいて名前を付けます。

既存のダウンロードパスとファイル名には、ハードリンク名ごとに同じ数語を除いて必要なものがすべて含まれています(つまり、各ハードリンク名の先頭に「The」が追加されます)。また、ファイル名の特定の部分をスクリプトで定義できるテキストスニペットに変更する必要があります(たとえば、「One」を「1」に変更するか、「Foos.Bar」を「Foos' Bar」に置き換えます)。新しいハードリンクの名前がPlexの命名規則に従うように、フォルダパスとファイル名から派生したさまざまな情報を並べ替える必要があります。

スクリプトで考慮すべきもう1つの重要な点は、ターゲットフォルダにハードリンクがまだない場合にのみハードリンクを作成する必要があることです。問題の急流の複数のバージョンが1週間以内にリリースされ、各バージョンがフォルダに追加のファイルを追加するという事実によって、状況は複雑になりました。

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正規表現コマンドとパイプを使用しています(または「使用」する必要がありますか?)。これらのコマンドは動作し、私が使用する2つのアップローダで使用される異なる命名スキームと連携して動作するため、Plex命名スキーム(残りの項目)に準拠した名前を作成するために必要な情報のほとんどを取得できます。名前は単に挿入できる標準テキストです。

機能するスクリプトを書くという目標を達成するには、元の質問の範囲をはるかに超えた質問に対する答えを見つける必要がありました。したがって、このスレッドを解決済みとしてマークする前に最後に言いたいのは、あなたが私と同じ立場にあり、ファイル名とそのフォルダパスから研究sedawk正規表現、およびパイプ文字列を抽出したい場合です。

sedファイル名から文字列を抽出し、テキストを変更するために使用されます。

awk(パイプを介して入力sed)フォルダパスから文字列を抽出します。

ベストアンサー1

おすすめ記事