최근에 배우기 시작했는데 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'
하지만 형식이 다름).