$VAR
예: 예를 들어 40개의 다른 변수가 있습니다 .txt
. /home/user/EXAMPLE/
100개의 파일에 있는 모든 변수를 어떻게 바꿀 수 있습니까?
변수가 무엇인지 시스템에 알리려면 유사한 파일 .csv
이나 .txt
구분 기호가 있는 파일을 사용하는 것이 좋습니다. 예:
$VAR=x
$VAR2=xx
$VAR3=xxx
일괄 편집 방법을 알고 계십니까?
답변1
질문을 두 부분으로 나눕니다.
- 파일 트래버스
- 파일에 대체 적용
디렉토리 에 있다면 EXAMPLE
다음과 같이 모든 파일을 반복할 수 있습니다.
for file in *.txt
do
echo "Considering file $file"
done
$PATH
이상적으로는 기존 쉘 변수(예: 또는 ) 와 충돌하지 않는 변수 세트를 대체하려면 를 $HOME
사용할 수 있습니다 envsubst
.
variables.sh
각 줄의 형식이 다음과 같은 파일을 만듭니다 .
export varname=value
export anothername='a longer value'
그런 다음 이 코드를 사용하여 명명된 파일과 $varname
같은 변수를 바꿀 수 있습니다 .$anothername
( . variables.sh; envsubst ) <"$file" >"$file.tmp" &&
mv -f "$file.tmp" "$file"
다음을 함께 사용하세요.
for file in *.txt
do
echo "Considering file $file"
( . variables.sh; envsubst ) <"$file" >"$file.tmp" &&
mv -f "$file.tmp" "$file"
done