ed에서 줄의 대소문자 변경

ed에서 줄의 대소문자 변경

tr이 명령을 사용하여 한 줄이나 일련의 줄의 대소문자를 변경할 수 있습니까 ed? 아니면 다른 방법이 있나요?

답변1

일부 외부 유틸리티를 통해 일련의 행을 필터링하는 것은 쉽지 않습니다 ed. 이 작업은 최소한 세 개의 명령 집합으로 수행하고 임시 파일을 사용해야 합니다.

utility외부 필터가 호출 되고 해당 필터를 통해 20~30개의 행을 필터링한다고 가정 해 보겠습니다 .

필터링하려는 행은 주소 지정에 사용됩니다 20,30. 먼저 필터에 다음 줄을 작성하고 출력을 tmp(모든 이름)이라는 파일에 저장합니다.

20,30 w !utility >tmp

그런 다음 버퍼의 줄을 결과 출력 파일의 줄로 바꿀 수 있습니다.

20,30 d
20- r tmp

이 명령은 먼저 필터링된 행을 삭제 utility한 다음 행 20 뒤에 결과 데이터를 삽입합니다( 20-와 동일하며 19r명령은 지정된 파일에서 텍스트를 삽입합니다).뒤쪽에처리되는 행).

ed이것을 결합 rlwrap하고 더 쉽게 실행할 수 있는 일종의 Readline 매크로를 만들어 내면 더 깔끔하게 만들 수 있지만 나는 그것에 대해 조사할 사람이 아닙니다. ex외부 필터를 사용해야 하는 텍스트 편집을 수행하고 이를 위해 줄 편집기를 사용하려는 경우 편집기를 비슷한 것으로 변경하는 것이 더 현실적인 접근 방식일 수 있습니다.

관련 정보