このタイトルはちょっと混乱しています。基本的に私は、さまざまな名前と拡張子を持つファイルの完全なディレクトリを持っている:iPadアプリのために拡張の前に余分な接尾辞が付いたファイルのコピーを作成するにはどうすればBashを使用しますか?
MainDirectory/
image_1.png
foobar.jpeg
myFile.txt
、私はこれらのファイル名のすべての最後に追加2X @サフィックスでこれらのコピーを作成する必要があります、拡張子の前に - 私はこれで終わるだろう:
MainDirectory/
image_1.png
[email protected]
foobar.jpeg
[email protected]
myFile.txt
[email protected]
代わりの手によって一度にファイル名を変更する1、私は私のためにそれの世話をするためのスクリプトを作成したいです。私は現在、以下のものを持っていますが、期待どおりに動作しません:
#!/bin/bash
FILE_DIR=.
#if there is an argument, use that as the files directory. Otherwise, use .
if [ $# -eq 1 ]
then
$FILE_DIR=$1
fi
for f in $FILE_DIR/*
do
echo "Processing $f"
filename=$(basename "$fullfile")
extension="${filename##*.}"
filename="${filename%.*}"
newFileName=$(echo -n $filename; echo -n [email protected]; echo -n $extension)
echo Creating $newFileName
cp $f newFileName
done
exit 0
は私も純粋のbashにこれを維持し、OS固有の呼び出しに依存しないようにしたいです。私は間違って何をしていますか?私が必要とすることをするために、私は何を変えることができますか、どのコードがうまくいくのでしょうか?
チャームのように働いた!ありがとう – Phil
は#、##、%、%%について知らなかった - とても役に立ちました、ありがとう!詳細はこちらhttp://tldp.org/LDP/abs/html/string-manipulation.html – ahmedre