파일의 증분 확장에 액세스합니다(정수 변수로).

파일의 증분 확장에 액세스합니다(정수 변수로).

다음을 사용하여 간단한 스크립트를 작성하려고 합니다.sed기본 찾기 및 바꾸기 기능. 원본파일을 원해요영향을 받지 않은그리고 "file.n"이라는 새 파일을 생성합니다(n은 증가됩니다).

내 주요 문제는 새 파일에 번호를 매기는 것입니다. 다음은 n=1 및 n=2에 대한 정적 함수가 포함된 기본 코드입니다.

#!/bin/bash
n=1

if [[ -f file.$n ]]
then sed -e 's/'$2'/'$3'/g' $1 > file.$((n+1))

else sed -e 's/'$2'/'$3'/g' $1 > file.1
fi

터미널의 입력은 다음과 같습니다../script text_sample.txt word_1 word_2

이 코드는 첫 번째와 두 번째 사용 모두에 잘 작동합니다(file.1이 존재하지 않으면 여기에 결과가 저장되고, 그렇지 않으면 file.(n+1), 즉 file.2에 저장됩니다).

하지만 file.3, file.4 등에 대해서는 어떻게 만드나요? 이 스크립트를 시작할 때마다 n=1로 시작하는데 어떻게 해야 할지 모르겠습니다.

특정 변수를 명령으로 사용하여 일부 내보내기 변수를 시도했습니다(정수를 보다 전역적으로 만들기 위해). 일부 루핑이 필요할 수 있습니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

이 시도:

#!/bin/bash
n=1

while [[ -f file.$n ]]; do
    n=$((n+1)
done

sed -e 's/'$2'/'$3'/g' $1 > "file.${n}"

답변2

sed의 백업 기능을 사용해 보세요sed -i [SUFFIX]

관련 정보