我在bash腳本中使用sed來更改某些變量值。這些變量是不同類型的混合物,還包括一些特殊字符:sed找不到文件
sed -i -e "s/NPROC=[^,]*,/NPROC=$NPROC/" \
-e "s/NFRPOS=[^,]*,/NFRPOS=$OUTPUTFREQ/" \
-e "s/NFRHIS=[^,]*,/NFRHIS=$OUTPUTFREQ/" \
-e "s/COSP_OUTPUT_FREQUENCY=[^,]*,/COSP_OUTPUT_FREQUENCY=$OUTPUTFREQ/" \
-e "s/TSTEP=[^,]*,/TSTEP=$TSTEP/" \
-e "s/NCEXTR=[^,]*,/NCEXTR=$NCEXTR/" \
-e "s/NVXTR2=[^,]*,/NVXTR2=$NVXTR2/" \
-e "s/NVEXTR=[^,]*,/NVEXTR=$NVEXTR/" \
-e "s/COSP_NLEVELS=[^,]*,/COSP_NLEVELS=$NLEV/" \
-e "s/NVEXTRAGB=[^,]*,/$NVEXTRAGB/" \
-e "s/NVEXTR2GB=[^,]*,/$NVEXTR2GB/" \
-e "s/NFPLEV=[^,]*,/NFPLEV=$NFPLEV/" \
-e "s/CNMEXP=[^,]*,/CNMEXP=\"${EXPID}\"/" \
-e "s/LFPOS=[^,]*,/NFPOS=2/" \
-e "s/NLAT=[^,]*,/NLAT=$NLAT/" \
-e "s/NLON=[^,]*,/NLON=$NLON/" \
$NAMELIST
+ sed -i -e 's/NPROC=[^,]*,/NPROC=10/' ' '
sed: can't read : No such file or directory
不過,我不斷收到該文件$ NAMELIST不能被發現的錯誤。該文件確實存在於相同的目錄中,並且名稱中沒有錯誤。添加完整路徑也無濟於事。所以我想知道這個sed命令有什麼問題。
原始錯誤'$ NAMELIST無法找到'在哪裏?新的錯誤很容易理解。你可能有一個額外的錯誤'/ path/to/namelist:Permission denied'。 – alvits
錯誤是在續行後添加了一個空格。 – Shejo284