권한 없음, 로컬 또는 원격 파일 이름 패턴이 일치하지 않습니다.

권한 없음, 로컬 또는 원격 파일 이름 패턴이 일치하지 않습니다.

ncrcat여러 파일에서 값을 추출 하는 코드가 있습니다 . .nc루프에서는 한 번에 하나의 파일에서 추출하도록 이 코드를 요청합니다. 이러한 파일의 이름은 텍스트 파일에 저장됩니다. 파일이 서로 다른 디렉터리에 저장되어 있기 때문에 경로를 추가해도 코드에서 읽을 수 없는 것 같습니다. 코드는 다음과 같습니다.

#!/bin/bash

outputNumber="$(wc -l Time122009.txt)"  #"$(ls -lq *_??????.nc | wc -l)"

echo "the number of lines in the Time text file is ${outputNumber}"

# from all the netcdf files extract the vel_u (and eventually vel_v) with the indices that are in I.txt and J.txt
for ((index=1; index<=10; index++)) #for now only 10 loops were done, the 10 should eventually be replaced by outputNumber 
do
arrI1=$(sed -n $index'p' I1.txt)
arrI2=$(sed -n $index'p' I2.txt)

arrJ1=$(sed -n $index'p' J1.txt)
arrJ2=$(sed -n $index'p' J2.txt)

Addition=`expr $index + 253` #I want it to start reading file Time122009.txt at position 253
Time=$(sed -n $Addition'p' Time122009.txt)

        ncrcat -C -F -d nj_u,${arrJ1},${arrJ2} -d ni_u,${arrI1},${arrI2} -v vel_u $(../GRAPHIQUES/${Time}) $index.nc #extract from variable vel_u in dimensions nj_u and ni_u from file found in Time

done

I.txt 및 J.txt의 첫 번째 값은 다음과 같습니다.

5.2000000e+02
5.1000000e+02
4.9800000e+02
4.9200000e+02
4.8600000e+02
4.8000000e+02
4.7600000e+02

Time122009.txt는 다음과 같습니다.

20091207_142???.nc
20091207_143???.nc
20091207_144???.nc
20091207_150???.nc
20091207_152???.nc
20091207_153???.nc
20091207_154???.nc

출력은 다음과 같습니다.

the number of lines in the Time text file is 378 Time122009.txt
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_080725.nc: Permission denied
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_082632.nc: Permission denied
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_083???.nc: No such file or directory
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_084604.nc: Permission denied
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_090511.nc: Permission denied
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_092443.nc: Permission denied
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_093???.nc: No such file or directory
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_094350.nc: Permission denied
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_100257.nc: Permission denied
    , neither exists locally nor matches remote filename patterns
    ./geknoei.sh: line 30: ../GRAPHIQUES/20091209_102229.nc: Permission denied
    , neither exists locally nor matches remote filename patterns

일부 파일을 찾을 수 없는 것은 정상입니다(파일이나 디렉터리가 존재하지 않음).

내 스크립트의 경로는 다음과 같습니다. /home/elisev/SYMPHONIE2015/ROC_CONNECT/Scripts 내 파일의 경로는 다음과 같습니다. /home/elisev/SYMPHONIE2015/ROC_CONNECT/GRAPHIQUES 필요한 항목을 제대로 추출할 수 있도록 이러한 오류가 발생하지 않도록 하려면 어떻게 해야 합니까?

편집: $()주변을 제거하면 $(../GRAPHIQUES/${Time})권한 거부 오류가 제거되었습니다. 이제 오류는 다음과 같습니다.

, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns
, neither exists locally nor matches remote filename patterns

답변1

내가 겪고 있는 문제는 I.txt 및 J.txt 파일의 숫자 형식입니다. 정수여야 합니다( 520아님 5.2000000e+02). 일단 dlmwrite('myFile.txt', myMatrix);matlab에서 사용하여 코드를 변경하면 다음과 같이 작동하며 작동합니다.

outputNumber="$(wc -l Time122009.txt)"  #"$(ls -lq *_??????.nc | wc -l)"

echo "the number of lines in the Time text file is ${outputNumber}"

# from all the netcdf files extract the vel_u (and eventually vel_v) with the indices that are in I.txt and J.txt
for ((index=1; index<=10; index++)) #size de I.txt 
do
arrI1=$(sed -n $index'p' I1.txt)
arrI2=$(sed -n $index'p' I2.txt)

arrJ1=$(sed -n $index'p' J1.txt)
arrJ2=$(sed -n $index'p' J2.txt)

Addition=`expr $index + 253` 
Time=$(sed -n $Addition'p' Time122009.txt) #TempsModel.txt
        echo $Addition
        ncrcat -C -F -d nj_u,$arrJ2,$arrJ2 -d ni_u,$arrI1,$arrI2 -v vel_u /home/elisev/SYMPHONIE2015/ROC_CONNECT/GRAPHIQUES/${Time} $index.nc 
        echo "${Time}"
done

관련 정보