이름 바꾸기-“s //”와“y //”는 무엇을 의미합니까?


9

man 페이지는 두 개의 예제를 제공합니다 :

rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *

그래서 그것은 s 또는 y입니다. /replaceThis/withThis

s와 y는 무엇을 의미합니까? 다른 옵션이 있습니까?

답변:


12

첫 번째 경우 :

rename 's/\.bak$//' *.bak

파일 이름에 대해 정규 표현식을 실행하고 일치하는 표현식 부분 (파일 이름 끝에 .bak)을 두 번째 표현식 (비어 있음)으로 바꾸십시오.

두 번째 경우 :

rename 'y/A-Z/a-z/' *

정규식 패턴 공간과 일치하고 대상으로 음역하고 있습니다. 즉, 범위 AZ가 범위 az로 변경되어 파일 이름이 소문자가됩니다.

자세한 내용 은 sed 매뉴얼 페이지를 참조하십시오. 나는 's'명령이 가장 자주 사용된다고 생각합니다. 또한 정규 표현식 (섹션 7) 과 perl 문서도 도움이 될 수 있습니다. 특히 다음 은 펄과 정규 표현식에 대한 튜토리얼 입니다.


보낸 사람 man sed:

s / regexp / replacement /    
       패턴 공간과 정규 표현식을 일치 시키십시오. 성공하면
       ful, 교체와 일치하는 부분을 교체하십시오. 그만큼
       대체에는 특수 문자가 포함될 수 있으며
       일치하는 패턴 공간의 일부 및 특수
       대응하는 일치를 나타 내기 위해 \ 1에서 \ 9로 이스케이프
       정규 표현식의 하위 표현식.

y / 소스 / 대상 /  
       나타나는 패턴 공간에서 문자를 음역
       소스에서 dest의 해당 문자로.

많은 감사합니다 - 난 그냥 확인 '나오지도'사람들을 가리키는 아니에요 최고의 아이디어는 특히 특정 리눅스 배포판과 OSX 사이 구현의 다양한 주어집니다
AAAAAA

@aaaaaa이 사이트는 우분투에 관한 것입니다.
wjandrea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.