더북(TheBook)

히스토리 확장을 이용한 더 강력한 치환 표현식

seded 편집기를 사용했다면 다음과 같은 치환 문법에 익숙할 것이다.

s/source/target/

셸에서도 비슷한 문법을 지원한다. 먼저 히스토리 확장에서 이전 명령을 불러오는 표현식을 작성한 다음(여기서는 !!를 예로 들어본다), 그 뒤에 콜론을 붙이고, sed 스타일의 치환 문법을 추가한다. 예를 들어 오타를 낸 이전 명령에서 jgjpg로 바꾸려면(첫 번째 출현만 치환) 다음과 같이 한다.

$ !!:s/jg/jpg

시작은 히스토리 확장 문법이면 어떤 것이든 사용할 수 있다. 이번에는 가장 최근의 md5sum 명령을 불러오는 !md5sum 표현식을 사용하자. 그리고 마찬가지로 jgjpg로 치환한다.

$ !md5sum:s/jg/jpg

이 문법은 언뜻 복잡해 보이지만, 다른 방법보다 훨씬 빠르게 원하는 결과를 얻을 수 있을 때가 많다. 자세한 내용은 man history 명령을 참조하자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.