./123bar/foo.txt
다음을 포함하는 파일이 있습니다 .
pro := text
ver := 1.0
rev := 2
두 개의 환경 변수:
var =2.1
var2=3
ver
모든 것을 and 로 바꾸고 싶습니다 $var
. 예상 출력:rev
$var2
pro := text
ver := 2.1
rev := 3
find
grep
아래에서는 먼저 모든 파일을 찾은 다음 전달하여 sed
결과를 얻으려고 합니다 . 아래는 내가 실행 중인 명령입니다.
find . -name 'foo.txt' | grep -P "\/[0-9]{3}bar" | xargs -I{} sed -E "s/:= *[0-9]+\.[0-9]+ *$/:= $var/g" -E "s/:= [0-9]+ *$/:= $var2/g" {}
작동하지 않고 오류가 발생합니다.
sed: can't read s/:= [0-9]+ *$/:= 3/g: No such file or directory
pro := text
ver := 2.1
rev := 45
어떻게 해결할 수 있나요? 더 깨끗하고 간단한 솔루션도 환영합니다.