csh 스크립트의 파일에서 데이터 읽기

csh 스크립트의 파일에서 데이터 읽기

csv 파일의 데이터를 Cshell 스크립트로 읽는 방법이 있습니까?

매개변수 세트를 사용하여 다른 스크립트를 재귀적으로 호출하는 작은 스크립트가 있습니다. 데이터 파일에서 이 매개변수 세트를 읽고 싶습니다. 어떻게 해야 하나요? awk를 사용하여 이를 구현하는 데 문제가 있습니다.

내 데이터 파일의 형식은 다음과 같습니다.

ecc obliq precu
0.035765 23.778 302.46
0.034552 23.709 286.67
.
.

이것은 내 코드입니다.

set ecc = (0.035765 0.034552 0.033316 0.032062 0.030792 0.029511 0.028223 0.026935 0.025652 0.024384)
set obliq = (23.778 23.709 23.629 23.541 23.447 23.35 23.253 23.158 23.069 22.989)
set precu = (302.46 286.67 270.94 255.27 239.68 224.17 208.78 193.52 178.43 163.54)

@ i=1000
@ k=1

while ($i <= 1009)
    cd Run${i}
    Run${i}/run${i} $i $ecc[$k] $obliq[$k] $precu[$k] >&! xout &
    @ i= $i + 1
    @ k= $k + 1
end

따라서 위 코드와 같이 변수를 설정하는 대신 데이터 파일에서 ecc, obliq 및 precu 변수를 읽고 싶습니다. 어떻게 해야 하나요? 매우 감사합니다.

답변1

다음을 수행할 수 있습니다.

set file='foo.bar'
set ecc=(`awk '{print $1}' "$file"`)
set obliq=(`awk '{print $2}' "$file"`)
set precu=(`awk '{print $3}' "$file"`)
...

명령 출력을 다음과 같은 다른 명령으로 바꿀 수 있습니다. 이는 foo `bar`출력을 인수로 호출하는 것과 동일합니다.foobar

awk열을 분리하는 데 사용할 수 있습니다. print $1입력에서 첫 번째 열, print $2두 번째 열 등을 가져옵니다. $변수가 대체되지 않도록 작은따옴표를 사용해야 합니다 .

관련 정보