일치하는 첫 10줄 [중복]

일치하는 첫 10줄 [중복]

일치 항목의 처음 10개 행을 얻는 방법은 무엇입니까? 옵션 B와 함께 grep을 사용한 다음 헤드에 파이핑하는 것이 효과가 있을 것 같지만 이를 수행하는 더 쉬운 방법이 있습니까?

예를 들어, 다음과 같은 텍스트 파일이 있다면

a
b
c
d
e
f
g
h
i
j
k
l
m

모드를 "l"로 선택하면 "b"인 처음 10개 행을 얻게 됩니다.

답변1

grep/method는 head잘 작동합니다. 더 쉬운 방법이 있는지 의심 스럽습니다. 일치하는 항목이 여러 개인 경우 첫 번째 일치 항목만 표시됩니다.

$ grep -B 10 l x|head -1
b
$

순환 버퍼를 사용하는 GNU awk솔루션. 일치하는 항목이 여러 개인 경우 각 일치 항목이 표시됩니다.

$ awk '/^l$/{print a[NR%10]};{a[NR%10]=$0}' x
b
$

관련 정보