~/foo.txt
다음 각 문자열의 인스턴스를 포함하는 파일이 있습니다.
alpha-1
alpha-2
alpha-3
alpha-4
alpha-5
alpha-6
alpha-7
alpha-8
alpha-9
alpha-X
이들 각각을 로 바꾸고 싶습니다 . 다른 인스턴스를 유지하고 싶기 때문에 beta-X
단순히 alpha-
로 바꾸는 것만으로 beta-
는 충분하지 않습니다 .alpha-
나는 이것이 다음과 같은 것으로 이루어질 수 있다고 생각한다.
perl -p -i -e `s/alpha-SOMETHING/beta-SOMETHING/g'
SOMETHING
하지만 그것이 무엇이어야 하는지 잘 모르겠습니다 . 여기에 해결책이 있나요?
(물론 9줄의 코드를 실행할 수 있지만 이는 비효율적입니다.)
답변1
perl -p -i -e 's/alpha-(\d)/beta-$1/g'
\d
0...9와 일치(\d)
일치하는 내용을 캡쳐(저장)하여 변수에 할당합니다.$1
(다른 캡쳐를 추가하면 다음 변수에 할당됩니다$2
.)- 숫자가 두 자리 이상일 수 있는 경우
\d+
이를 사용하여 하나 이상의 숫자를 일치시킬 수 있습니다.