이것은 내 샘플 파일입니다.
user@linux:~$ cat file.txt
Line 1
Line 2
Line 3
Line 4
Line 5
user@linux:~$
2~4줄을 인쇄할 수 있어요grep -A2 'e 2' file.txt
user@linux:~$ grep -A2 'e 2' file.txt
Line 2
Line 3
Line 4
user@linux:~$
여행 번호도 인쇄할 수 있어요grep -n
user@linux:~$ grep -nA2 'e 2' file.txt
2:Line 2
3-Line 3
4-Line 4
user@linux:~$
또는 다음을 통해 동일한 작업을 수행할 수 있습니다.sed -n 2,4p file.txt
user@linux:~$ sed -n 2,4p file.txt
Line 2
Line 3
Line 4
user@linux:~$
그런데 줄번호를 출력하는 방법을 모르겠어요sed
줄 번호를 인쇄할 수 있나요 sed
?
답변1
AWK:
awk 'NR==2,NR==4{print NR" "$0}' file.txt
더블sed:
sed '2,4!d;=' file.txt | sed 'N;s/\n/ /'
글렌 잭맨~의sed그리고반죽:
sed '2,4!d;=' file.txt | paste -d: - -
바트~의진주버전:
perl -ne 'print "$. $_" if 2..4' file.txt
고양이그리고sed:
cat -n file.txt | sed -n '2,4p'
이것도 보세요답변유제.
조금설명하다:
sed -n '2,4p'
동일한 작업을 수행 합니다sed '2,4!d'
. 첫 번째는 두 번째와 네 번째(포함) 사이의 줄만 인쇄하고, 후자는 해당 줄을 제외한 모든 줄을 "제거"합니다.sed =
줄 번호 인쇄그 뒤에 개행 문자가 옵니다.. 보다수동.cat -n
마지막 예에서는nl
또는 으로 대체할 수 있습니다grep -n ''
.
답변2
아래에 언급된 두 가지 방법으로 수행했습니다.
방법 1
awk '/2/{x=NR+2}(NR<=x){print NR"-"$0 }' filename
주문하다
2-Line 2
3-Line 3
4-Line 4
방법 2
sed -n '{;=;p}' filename| sed "N;s/\n/ /g"| sed -n '/2/,+2p'
산출
2 Line 2
3 Line 3
4 Line 4
답변3
이게 바로 그거 아닌가 nl
?
그런 다음 원하는 방법을 사용하여 행을 선택할 수 있습니다.
(편집하다)
모든POSIX,nl
하다빈 줄 수:
$ nl -b a example
1 line1
2
3 line3
4
5 line5
6
$ nl -b a < example | sed -n '2,4p'
2
3 line3
4
출력만 계산하려는 경우 파이프를 반대로 하면 됩니다.