現在のディレクトリからキーワードを抽出するBashスクリプト

現在のディレクトリからキーワードを抽出するBashスクリプト

次の形式のディレクトリがあります。

/folder1/folder2/name_X_Y_Z_A

ここではX、数字、、、YZ3Aつまたは4つの文字列です。

次のようにシェルスクリプトファイルを作成したいと思います。

  • フォルダ名からX合計を抽出します。Z
  • 文字列の生成/folder1/folder2/name_(X-1)_Y_Z_A
  • string_Z.datこのディレクトリからファイルをコピーする

ここから特定のパターンを抽出する方法がわかりません$PWD。数字の長さと長さが異なる可能性があるため、Xおよびの文字位置は同じである必要はありません。Zname

ベストアンサー1

まず、シェルのパラメータ置換構文を使用して先行パスコンポーネントを切り取ってから、${PWD##*/}下線をフィールド区切り文字として使用して、デフォルト名を配列として読み取ることができます。

IFS=_ read -a arr <<< "${PWD##*/}"

bash配列はインデックスが0なので、必要な部分を配置する必要があります${arr[1]}${arr[3]}

newdir="/folder1/folder2/name_$((${arr[1]}-1))_${arr[3]}_Z_A"

(X-1)[注:リテラル文字列ではなく算術結果を意味すると仮定します。 ]

おすすめ記事