私はいくつかの変数値を変更するために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