log_REPLACE
파일을 복사하고 파일 이름의 문자열을 파일의 문자 합계로 바꾸는 스크립트를 작성하려고 합니다 .REPLACE
A
B
그래서 문자열이 각각 문자 A와 B로 바뀌는 log_A
, 및 를 만들고 싶습니다 .log_b
REPLACE
제 생각에는:
cp log_REPLACE log_A
cp log_REPLACE log_B
grep -rl REPLACE | xargs sed -i 's/REPLACE/A/g'
그러나 결국 두 개의 복사본(*A 및 *B)으로 다시 작성됩니다. 더 좋은 방법이 있나요?
답변1
가능한 파일 이름 하위 문자열을 반복하고 로 바꾸고 STDOUT을 원하는 파일 이름으로 sed
저장할 수 있습니다.sed
for i in a b; do
sed "s/REPLACE/$i/g" log_REPLACE >"log_$i"
done
필요에 맞게 필요한 변경을 수행합니다.