파일 이름을 입력으로 사용하여 스크립트 실행

파일 이름을 입력으로 사용하여 스크립트 실행

csv 파일 A(INPUT.csv)에서 읽는 셸 스크립트를 만든 다음 데이터에서 임시 파일을 만들고 일부 작업을 수행한 다음 다른 csv 파일 B를 만듭니다. 마지막으로 INPUT.csv와 B 두 파일을 병합하여 FinalOutput.csv를 생성합니다.

이 스크립트의 한계는 파일 이름이 다른 경우 파일 이름을 바꾸거나 스크립트를 변경해야 한다는 것입니다. 그렇지 않으면 파일을 읽을 수 없습니다. 파일 이름에 관계없이 FinalOutput.csv를 처리하고 생성하도록 이를 동적으로 만들려면 어떻게 해야 합니까?

샘플 스크립트 -

#!/bin/bash
awk -F, '{print $2}' INPUT.csv > FileB.csv
{
Operations on File B
}
paste -d "," INPUT.csv FileB.csv > FinalOutput.csv

exit 0

답변1

입력 파일의 파일명을 파라미터로 하여 스크립트를 실행합니다.

그런 다음 다음을 사용하여 스크립트를 실행할 수 있습니다.

./script.sh INPUT.csv FileB.csv

스크립트 내에서 다음과 같은 변수 "$1"및 참조 매개변수를 사용합니다 "$2".

#!/bin/bash
awk -F, '{print $2}' "$1" > "$2"
{
# Operations on File B
}
paste -d "," "$1" "$2" > FinalOutput.csv

exit 0

관련 정보