我有一個變量,需要修改,以便分鐘%M被添加。我知道sed命令,它按預期工作。限制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命令應該添加分鐘%M只即使執行sed命令一次兩次(錯誤)
你有正確的想法,但你的一些語法是關閉的 - 兩個shell語法(你不能在''...''裏面使用'\'''嵌入''',因爲反斜槓不是' t在''...'')和'sed'語法中被認爲是特殊的(最後你需要一個'/')。另外,沒有理由在'%'前加反斜槓。 (OP做了,但不需要)所以,我想你想寫's /%H'/%H-%M'/「'。 – ruakh
啊謝謝,我只是想着正則表達式。編輯。 – placeybordeaux