我在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