일치 항목의 처음 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
$