bashスクリプトでコマンドの名前を変更しようとしています。私は、例えば、実行する場合:ファイル名の変更はコマンドプロンプトでは有効ですが、bashスクリプトでは機能しません。
echo /home/scientist/mySalesData/campaignData_1482386214.24417.csv | sed 's/\(.*\)\(_.*\)/mv \"&" \"\1.csv\"/' | bash
それは正常に動作し、ディレクトリ/home/scientist/mySalesData/
に私campaignData.csv与えます。私はbashスクリプトでこれを置けば
はしかし、次のように:
for f in /home/scientist/SalesData/*; do
if [ -f "$f" ];
cp "$f" /home/scientist/SalesForce/SalesData/Backups/
echo $f$ | sed 's/\(.*\)\(_.*\)/mv \"&" \"\1.csv\"/' | bash |
fi
done
は私が取得:
mv: cannot stat '/home/scientist/SalesData/campaignData_1482386214.24417.csv$': No such file or directory
は、すべてのヘルプははるかに高く評価されるだろう!
あなたは単純なタイプミスがあります。 '$ f $'を '' $ f "'に変更し、欠落した ''を追加してください。 –
私はこれを夜遅くにやっています。 – user1357015