"리눅스 파일 특정 행 보기"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 35개는 보이지 않습니다)
1번째 줄: 1번째 줄:
*리눅스 파일에서 N번째 행 출력하기
;리눅스 파일 특정행 보기, N행 보기
*리눅스 파일에서 N번째 행 보여주기
;리눅스 파일에서 N번째 행 출력
*리눅스 파일에서 N번째 행 가져오기
;리눅스 파일에서 N번째 행 보여주기
;리눅스 파일에서 N번째 행 가져오기
;리눅스 N번째 행 grep<ref>의미상 grep이긴 한데, grep 명령어를 사용하는 것은 아님</ref>


==기본==
==방법 1: sed==
*test.txt 파일에서 10번행 가져오기
{{소스헤더|10번행}}
<source lang='bash'>
<source lang='bash'>
sed -n 10p < test.txt
출력명령어 | sed -n 10p
</source>
<source lang='bash'>
sed -n 10p < 파일명
</source>
<source lang='console'>
root@localhost:~# for i in {1..100}; do echo "i = $i"; done | sed -n 10p
i = 10
root@localhost:~# cat /etc/passwd | sed -n 10p
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
root@localhost:~# sed -n 10p < /etc/passwd
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
</source>
</source>


==고급==
{{소스헤더|변수 N번행}}
*test.txt 파일에서 10번행 가져오기. (더 빠르게 하기)
<source lang='bash'>
<source lang='bash'>
sed -n '10p;11q' < test.txt
출력명령어 | sed -n "$N"p
</source>
<source lang='bash'>
sed -n "$N"p < 파일명
</source>
<source lang='console'>
root@localhost:~# N=10
root@localhost:~# for i in {1..100}; do echo "i = $i"; done | sed -n "$N"p
i = 10
root@localhost:~# cat /etc/passwd | sed -n "$N"p
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
root@localhost:~# sed -n "$N"p < /etc/passwd
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
</source>
</source>
11번행에서 탐색을 종료하여 속도를 높힌다.


==실행예시==
==방법 2: head + tail==
<source lang='dos'>
{{소스헤더|10번행}}
[root@myhost ~]# cat /etc/issue
<source lang='bash'>
CentOS release 5.7 (Final)
출력명령어 | head -10 | tail -1
Kernel \r on an \m
</source>
<source lang='bash'>
head -10 파일명 | tail -1
</source>
<source lang='console'>
root@localhost:~# for i in {1..100}; do echo "i = $i"; done | head -10 | tail -1
i = 10
root@localhost:~# cat /etc/passwd | head -10 | tail -1
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
root@localhost:~# head -10 /etc/passwd | tail -1
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
</source>


[root@myhost ~]# sed -n 2p /etc/issue
{{소스헤더|변수 N번행}}
Kernel \r on an \m
<source lang='bash'>
[root@myhost ~]# sed -n '2p;3q' /etc/issue
출력명령어 | head -$N | tail -1
Kernel \r on an \m
</source>
<source lang='bash'>
head -$N 파일명 | tail -1
</source>
<source lang='console'>
root@localhost:~# N=10
root@localhost:~# for i in {1..100}; do echo "i = $i"; done | head -$N | tail -1
i = 10
root@localhost:~# cat /etc/passwd | head -$N | tail -1
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
root@localhost:~# head -$N /etc/passwd | tail -1
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
</source>
</source>


[[분류:리눅스]]
==같이 보기==
*[[리눅스 파일 특정 행부터 보기]]
*[[리눅스 파일 특정 행 내용 교체]]
*[[리눅스 매칭 행번호 확인]]
*[[sed]]
*[[head]]
*[[tail]]
*[[for]]
 
==참고==
 
[[분류:sed]]
[[분류: head]]
[[분류: tail]]

2020년 4월 8일 (수) 21:29 기준 최신판

리눅스 파일 특정행 보기, N행 보기
리눅스 파일에서 N번째 행 출력
리눅스 파일에서 N번째 행 보여주기
리눅스 파일에서 N번째 행 가져오기
리눅스 N번째 행 grep[1]

1 방법 1: sed[ | ]

10번행
출력명령어 | sed -n 10p
sed -n 10p < 파일명
root@localhost:~# for i in {1..100}; do echo "i = $i"; done | sed -n 10p
i = 10
root@localhost:~# cat /etc/passwd | sed -n 10p
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
root@localhost:~# sed -n 10p < /etc/passwd
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
변수 N번행
출력명령어 | sed -n "$N"p
sed -n "$N"p < 파일명
root@localhost:~# N=10
root@localhost:~# for i in {1..100}; do echo "i = $i"; done | sed -n "$N"p
i = 10
root@localhost:~# cat /etc/passwd | sed -n "$N"p
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
root@localhost:~# sed -n "$N"p < /etc/passwd
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

2 방법 2: head + tail[ | ]

10번행
출력명령어 | head -10 | tail -1
head -10 파일명 | tail -1
root@localhost:~# for i in {1..100}; do echo "i = $i"; done | head -10 | tail -1
i = 10
root@localhost:~# cat /etc/passwd | head -10 | tail -1
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
root@localhost:~# head -10 /etc/passwd | tail -1
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
변수 N번행
출력명령어 | head -$N | tail -1
head -$N 파일명 | tail -1
root@localhost:~# N=10
root@localhost:~# for i in {1..100}; do echo "i = $i"; done | head -$N | tail -1
i = 10
root@localhost:~# cat /etc/passwd | head -$N | tail -1
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
root@localhost:~# head -$N /etc/passwd | tail -1
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

3 같이 보기[ | ]

4 참고[ | ]

  1. 의미상 grep이긴 한데, grep 명령어를 사용하는 것은 아님
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}