n번째 마지막 명령에 캐럿 대체를 어떻게 적용합니까?

n번째 마지막 명령에 캐럿 대체를 어떻게 적용합니까?

파일에 대해 긴 명령을 실행한 다음 다른 명령을 사용하여 결과를 처리해야 하는 경우가 종종 있습니다. 다음 파일을 처리하려면 일반적 Up으로 원하는 파일을 찾을 때까지 키 입력으로 동일한 명령을 다시 실행하고 이전 파일 이름을 새 파일 이름으로 힘들게 바꿉니다.

^oldfile^newfile캐럿( )을 다음으로 바꾸는 방법이 있나요?N마지막 주문? 나는 (실패한) 배관을 시도했습니다Nth-last 명령은 다음과 같이 대체를 입력합니다.

$ !-4 | ^old^new

물론 다른 제안에도 열려있습니다. 이 작은 지름길은 실제로 생산성을 높이는 데 도움이 됩니다…

답변1

당신은 사용할 수 없습니다빠른 교체직접적이므로 ^foo^bar축약되어 있습니다.

!!:s/foo/bar/

해당 !!부분(마지막 명령 참조)은 빠른 구문의 일부가 아니지만(그래서 빠른 구문이 됩니다)할 수 있는더 긴 구문을 사용하고 !!원하는 대로 수정하세요.

!-4:s/foo/bar/

나는 가능한 한 많은 역사적 문법을 설명했다.이 게시물;마지막 부분에는 :s수정자가 포함됩니다.

답변2

파일 이름을 인수로 사용하고 function filename필요할 때 입력하는 쉘 함수로 긴 명령을 작성할 수 있습니다.

관련 정보