이것이 가능한지 알고 싶습니다. 다양한 파일의 텍스트를 일괄 교체하고 싶은데 이는 문제가 되지 않습니다. 이해할 수 없거나 가능하더라도 특정 방식으로 텍스트를 바꾸십시오.
예를 들어:
String = XXXXX_name($var1);
XXXX는 고정되어 있으므로 XXXX를 예를 들어 YYYY로 바꾸는 것은 간단합니다. 그러나 더 복잡한 부분은 다음과 같습니다.
($var1);
다른 변수를 삽입하고 싶으므로 ");"
삽입되기 전에는 <-- 일치 항목이 됩니다. 그러나 문자열에 이미 두 개의 변수가 있으면 ($var1,$var2);
아무것도 삽입되지 않습니다.
이제 다른 것을 추가하려면 Var1과 Var2를 서로 다르게 호출할 수 있으므로 일치 항목이 if $ > 1
내부에 있어야 하며 삽입하기 전에 ()
아무 작업도 수행하지 않아야 합니다.If $ = 1 inside ()
", $var2"
);
문자열= XXXXX_name($var1);
은 다음과 같아야 합니다: 문자열=YYYYY_name($var1, var2);
답변1
이 같은?
$ echo 'String = XXXXX_name($var1); ' |
sed -E -e 's/XXXXX_name\((\$[[:alnum:]_]+)\);/YYYYY_name\(\1, \$var2\);/'
String = YYYYY_name($var1, $var2);
확장 정규식에서 인용되지 않은 괄호는 그 안에 있는 부분을 캡처하고 sed는 \1
캡처된 부분을 다시 교체 부분에 넣습니다.