GNU Ed에서 줄 번호를 사용하여 검색

GNU Ed에서 줄 번호를 사용하여 검색

최근에 배우기 시작했는데 ed텍스트를 검색해야 하는 수준에 이르렀습니다. 나의 첫 번째 시도는 발생 횟수는 표시하지만 줄 번호는 표시하지 않는 ed의 명령이었습니다. /바닐라에서는 이게 가능한가요 ed?

답변1

g+ n(전역 +숫자 명령)를 사용할 수 있습니다 .

$ ed -p 'ed> ' file
ed> ,p
tree
apple
lemon
fruit
not
here
pear
apricot
end
ed> g/a/n
2       apple
7       pear
8       apricot

사용 가능한 모든 명령을 보려면 설명서를 확인하세요.POSIX 버전그리고GNU 교육용 에디션.

답변2

이를 사용하여 =편집 버퍼에 있는 줄의 줄 번호를 출력할 수 있습니다. 표현식을 사용하여 검색 RE하고 첫 번째 적중의 줄 번호를 출력하려면 다음을 사용하십시오.

/RE/ =

n명령은 행 번호가 앞에 붙은 현재 행을 출력합니다. 다른 행이나 행 범위에도 적용할 수 있습니다.

/RE/ n

일치하는 모든 줄의 줄 번호를 얻으려면 =또는 명령 n과 함께 사용하십시오. g그러나 명령의 기본 주소는 =현재 행이 아닌 편집 버퍼의 마지막 행이므로 명시적으로 주소를 제공하지 않는 한 을 사용하면 =잘못된 결과를 얻게 됩니다 . 그래서 사용g.

g/RE/ .=

일치하는 모든 줄의 줄 번호만 가져옵니다 RE.

사용

g/RE/ n

일치하는 모든 줄 RE과 해당 줄 번호를 출력합니다(비슷 grep -n 'RE'하지만 형식이 다름).

관련 정보