1
我想使用的索引for循環在bash計算號碼,然後通過這個數字將sed的:猛砸數學然後通過輸出到sed的
for i in {1989..2009..1}
do
let year=i-1
echo $year
find /cygdrive/d/snowmodel/$i/snowmodel.par -type f -exec \
sed -i 's/iyear_init = 1989/iyear_init = '$year'/g' {} +
done
所以我想,以取代線iyear_init = 1989
與行iyear_init = (the value of i-1, which should be the variable "year")
。
echo $year
命令返回正確的值,但似乎當它傳遞給sed時,它將恢復爲像字符串一樣處理年份。
感謝您的任何幫助。
把sed命令在雙引號,sed的-I「S/$ {I}一年......」 – Dru
好找到答案後計算器建議的相關問題(我想我的搜索查詢間沒有」措辭很好)。 問題是我需要用雙引號替換單引號,因爲單引號內的變量不會在sed中被替換。以下工作: 因爲我在{} 1989..2009..1做 令 年= I-1 回聲$一年 找到/cygdrive/d/snowmodel_cig/cig_79/bias_runs/$i/snowmodel.par - 類型f -exec \ \t sed -i「s/iyear_init = i-1/iyear_init = $ year/g」{} + done –
@ mr.cooper您應該刪除問題或將固定代碼作爲回答(並接受它) – SheetJS