파일 입력을 사용하여 fortran77 프로그램을 실행하는 방법은 무엇입니까?

파일 입력을 사용하여 fortran77 프로그램을 실행하는 방법은 무엇입니까?

터미널에서 fortran77 프로그램을 실행합니다.

./program

그리고 프로그램에는 입력 및 출력 파일이 필요합니다. 파일에 입력 및 출력 파일의 이름이 있는 경우(두 개의 열로 분할됨) 터미널에 무엇을 써야 합니까? 파일에 이름이 있는 모든 줄에서 이 프로그램을 실행하고 싶습니다.

아니면 - 매개변수와 같은 입력 정보를 사용하여 프로그램을 실행하는 방법은 무엇입니까?

아니면 스크립트에 직접 파일 이름을 어떻게 쓸 수 있나요? 바꾸다

READ(+,'(A)') OUT

답변1

다음과 같은 프로그램 파일을 만들었습니다.prog.f

       program test

       character IN*30,OUT*30,line*80

       PRINT *,'Input file '
       READ(*,'(A)') IN
       OPEN(1,FILE=IN,STATUS='OLD')
       PRINT *,'Output file?'
       READ(*,'(A)') OUT
       OPEN(2,FILE=OUT,STATUS='NEW',BLANK='ZERO')


       read (1,'(a80)') line
       write (2,*) "I read ", line
       end

컴파일하고 링크하기

gfortran prog.f -o prog

입력 파일에 텍스트 문자열을 넣었습니다.

echo "Hello World" > in

inout그런 다음 프로그램에 입력 및 출력 파일의 이름을 보냅니다.

$ <<< 'in
out' ./prog
 Input file 
 Output file?

그리고 출력 파일을 확인해보세요

$ cat out
 I read Hello World                                                                     

<<<에서 작동합니다 . 더 휴대성이 좋은 파이프를 bash선호할 수도 있습니다 .echo

$ rm out
rm: remove normal file 'out'? y

$ echo 'in
out' | ./prog
 Input file 
 Output file?
$ cat out
 I read Hello World                                                                     

답변2

아마도 운이 좋다면

<infile ./program  >outfile

작동합니다. 파일 설명자를 제공하도록 리디렉션합니다. 옵션/매개변수? ? ?


우리 지구인들이 그런 글을 쓰면...

$ <77in cat >77.out
$ cat 77in >77.out

77in(이것은 에 복사되었습니다 77.out.)

...이 Fortran77 프로그램/명령은 다음과 같이 되기를 원합니다.피연산자입력 파일/스트림에서 한 줄씩:

$  <77.io cat
77in
77.out

이제 cat다른 것이면 첫 번째 줄을 입력 파일(예: "hello\nworld" 포함)로 구문 분석하고 두 번째 줄을 생성할 파일로 구문 분석합니다.

이것은 더 새롭고 간단한 방법인 것 같습니다...


cp -a dir1 dir2 dest지금처럼 긴 매개변수 목록 대신 <in_list cpa77.

하지만 modern과 같은 추가 파일이 필요합니다 cpio.

<filelist cpio -o >files.cpio. 물론 cpioSTDIN 라인만 필요합니다:

find . | cpio -o >files.cpio

( cpio기능으로 인해 이 특수 호출 구문을 사용하면 많은 파일을 처리할 수 있습니다.주문 반. 동일 tar하지만 다른 방식으로)

본질적으로 Unix의 특징 중 하나가 있다면 바로 셸의 명령에 제어 및 데이터를 제공할 수 있는 유연성입니다. 내가 말했듯이: 결국 좋은 Q입니다! (답변해주셔서 감사합니다!)

관련 정보