2017-10-03 9 views
0

これらのCSVファイルに日付を追加する必要があります。 これは私がディレクトリにいるときに得られるものです。bash変数から接尾辞(.csv)を削除

ls -1 *Limit* 
comeLimitChanges.csv 
andLimitSnapshot.csv 
playLimitChanges.csv 
withLimitSnapshot.csv 
usChanges.csv 
dannyLimitSnapshot.csv 

ここにスクリプトがあります。

#!/bin/bash 
DATE=$(date +%Y%m%d) 
for i in *Limit* 
do 

ddotcsv="$i.$DATE.csv" 
echo "$i" "$ddotcsv" 
sleep 1 
done 

ここに結果があります - 私は最後の接尾辞からcsvを取る必要があり、カットを使用したくありません。 echo "$ i"より良い方法があります。カット-d '。' -f1

comeLimitChanges.csv.20171002.csv 
andLimitSnapshot.csv.20171002.csv 
playLimitChanges.csv.20171002.csv 
withLimitSnapshot.csv.20171002.csv 
usChanges.csv.20171002.csv 
dannyLimitSnapshot.csv.20171002.csv 

私はこれが必要です、単純に私は小文字の変数に名前を変更し、あなたの日付を(追加する前csvサフィックスを削除するshell parameter expansionsuffix substring removal form, ${var%suffix}を使用

comeLimitChanges.20171002.csv 
andLimitSnapshot.20171002.csv 
playLimitChanges.20171002.csv 
withLimitSnapshot.20171002.csv 
usChanges.20171002.csv 
dannyLimitSnapshot.20171002.csv 

〜 〜

答えて

1

をallcapは通常、シェルのグローバル変数に使用されるため):

#!/bin/bash 
today=$(date +%Y%m%d) 
for i in *Limit*; do 
    ddotcsv="${i%csv}$today.csv" 
    echo "$i $ddotcsv" 
    sleep 1 
done 
関連する問題