1

分 %M が追加されるように、変数を変更する必要があります。私は sed コマンドを知っており、期待どおりに機能しています。

# cat mysed.txt 
myfirstfile="comany$mydb`date +'%d-%b-%Y-%H'`.sql"

# sed -i 's/\%H/\%H-\%M/' mysed.txt
# cat mysed.txt 
myfirstfile="company$mydb`date +'%d-%b-%Y-%H-%M'`.sql"

しかし、同じ sed コマンドを再度実行すると、次のように %M が再度追加されます。

# sed -i 's/\%H/\%H-\%M/' mysed.txt

# cat mysed.txt 
myfirstfile="company$mydb`date +'%d-%b-%Y-%H-%M-%M'`.sql"

sed コマンドが (誤って) 2 回実行された場合でも、分 %M を 1 回だけ追加する sed コマンドが必要です。

4

3 に答える 3

0

置換する前に存在するかどうかをテストします。

sed '/%H-%M/! s/%H/%H-%M/' mysed.txt

ところで。%エスケープする必要はありません。

于 2013-02-07T11:20:19.797 に答える