
私はこれを持っています
/Folder1/108462-2.jpg
/Folder1/108462-3.jpg
/Folder1/BSR2333-1.jpg
/Folder1/BSR2333-2.jpg
/Folder1/DKS23108554-1.jpg
/Folder1/DKS23108554-2.jpg
私はこれを欲しいです:
/108462/108462-2.jpg
/108462/108462-3.jpg
/BSR2333/BSR2333-1.jpg
/BSR2333/BSR2333-2.jpg
/DKS23108554/DKS23108554-1.jpg
/DKS23108554/DKS23108554-2.jpg
私はこれを見ました。
do if [[ -f "$file" ]]; then mkdir "${file:0:9}" mv "$file" "${file:0:9}"; fi; done
しかし、完全には実現していません...
しかし、フォルダを作成し、そのフォルダにファイルを入れるために「-」までの名前全体を使用するように修正するにはどうすればよいでしょうか。よろしくお願いします。Macターミナル初心者です
答え1
説明に基づいて、先頭を/Folder1
フォルダー内のファイル名から-
ファイル名の まで変更します。
これは原始的な例ですが、意味のある変数名読みやすいコードのために。
#! /bin/bash
pathname=/Folder1/108462-2.jpg
newfolder="$(dirname "$pathname")"
newfolder="${newfolder/-.*$//}"
filenamepartofpathname="$(basename $pathname)"
newpathname="$newfolder/$filenamepartofpathname"
echo "$newpathname"
シェルチェック出力は生成されません:
$ shellcheck primitive-example.sh
(no output)
$ ./primitive-example.sh
/108462/108462-2.jpg
ファイルに複数の値がある場合は、-
プリミティブな例を調整する必要がある場合があることに注意してください。
「コードゴルフ」も試してみましょうhttps://codegolf.stackexchange.com/より原始的でないが読みやすいものにするための支援を得る。