-
[LeetCode | Shell] 195. Tenth Line개발/쉘 스크립트 2023. 6. 5. 22:51
문제
https://leetcode.com/problems/tenth-line/description/
Tenth Line - LeetCode
Can you solve this real interview question? Tenth Line - Given a text file file.txt, print just the 10th line of the file. Example: Assume that file.txt has the following content: Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 Yo
leetcode.com
- file.txt에서 10번째 라인을 출력하기
- 10줄 미만인 경우 어떻게 출력할지 고민할 것
풀이
1번 답안
- 속도는 빠르지는 않지만, 가장 많이 생각해내는 일반적인 답안
- sed 명령어를 사용해 파일의 10번째줄 라인을 출력
- 보통 sed는 삭제, 수정, 치환에 사용되는 명령어이지만 출력으로도 사용 가능
sed -n '10p' file.txt
2번 답안
- 속도가 느린편이지만, 이런 방법도 있는 답안
- head와 tail을 활용: 처음 10줄을 출력(head) 후 10번째 줄부터(tail) 마지막까지 출력
- 두 가지 방식 모두 동일한 결과
echo cat file.txt | head -n 10 | tail -n +10 head -n 10 file.txt | tail -n +10
3번 답안
- 위의 답안들보다 비교적 빠른 속도를 보임
- for문을 사용하려 했지만, 줄에 공백이 들어간 경우 정확한 처리가 안됨
i=0 while read l; do if [ $i -eq 9 ];then echo $l fi i=$((i+1)) done < file.txt
느낀점
- 프로그램 짜는 것처럼 로직 하나씩 만들어도 좋지만, 리눅스 명령어를 익혀두는 것도 의미가 있을 것으로 생각됨
- 쉘은 정말 다양한 방법으로 문제를 해결할 수 있지만, 쉘의 특성을 잘 알고 속도 향상과 메모리를 절약하는 방향으로 구성해야 함
참고
[Linux] more, less, head, tail, 특정라인 출력 sed, awk
[Linux] more, less, head, tail, 특정 라인 출력 sed, awk ④
○ more ▷ 파일의 내용을 출력하는 명령어 이전글에서 배운 cat명령어와 비슷하게 파일의 내용을 출력하는 명령어인데 조금씩 기능이 다른거 뿐입니다. cat과 다른 점은 한 페이지씩 출력 (%로 얼
it-serial.tistory.com
'개발 > 쉘 스크립트' 카테고리의 다른 글
[LeetCode | Shell] 194. Transpose File (3) 2023.06.06 [LeetCode | Shell] 192. Word Frequency (0) 2023.06.06 [LeetCode | Shell] 193. Valid Phone Numbers (0) 2023.06.06 쉘 스크립트 기본 문법 정리 (0) 2023.06.04