wc와 nl
100%

Text-Fu · 레슨 15

wc와 nl

wc로 줄, 단어, 바이트, 문자를 세고 nl로 줄 번호를 붙이는 방법을 배웁니다.

wc 명령어는 텍스트 스트림의 여러 속성을 세고 nl은 입력에 생성한 줄 번호를 붙여 씁니다. 둘 다 파일이나 표준 입력을 읽고 결과를 표준 출력으로 보냅니다.

wc 기본 출력 읽기

개수 옵션이 없으면 wc는 줄 바꿈 문자 수, 단어 수, 바이트 수를 출력하고 파일을 지정했을 때는 파일 이름을 뒤에 붙입니다.

$ printf 'red blue\ngreen\n' > colors.txt
$ wc colors.txt
 2  3 15 colors.txt

왼쪽부터 다음을 뜻합니다.

  1. 줄 수로 보고되는 줄 바꿈 문자 2
  2. 공백으로 구분된 단어 3
  3. 이 ASCII 예제의 바이트 15

끝에 줄 바꿈이 없는 마지막 텍스트 줄은 wc -l에서 세지 않습니다. 이 옵션은 눈으로 보이는 줄이 아니라 줄 바꿈 문자를 세기 때문입니다.

wc file.txt의 기본 출력에서 처음 세 숫자는 무엇을 나타내나요?

한 가지 개수 요청하기

필요한 측정값만 선택할 수 있습니다.

  • -l: 줄 바꿈 문자 수
  • -w: 단어 수
  • -c: 바이트 수
  • -m: 현재 로캘에 따른 문자 수

예를 들면 다음과 같습니다.

$ wc -w colors.txt
3 colors.txt

ASCII 텍스트에서는 바이트 수와 문자 수가 같지만 UTF-8 같은 멀티바이트 인코딩에서는 다를 수 있습니다. 파일 이름 피연산자 없이 표준 입력을 사용하면 wc는 일반적으로 파일 이름 레이블을 생략합니다.

$ printf 'one two\n' | wc -w
2

essay.txt의 단어 수만 보고하는 명령어는 무엇인가요?

현재 로캘에서 바이트가 아니라 문자를 세도록 wc에 요청하는 옵션은 무엇인가요?

여러 파일을 지정하면 wc는 파일마다 결과 하나를 출력하고 total 줄을 추가합니다. GNU wc -L은 입력 줄의 최대 표시 너비를 보고합니다.

nl로 비어 있지 않은 줄에 번호 붙이기

기본적으로 nl은 입력의 논리적 본문에서 비어 있지 않은 줄에 번호를 붙입니다. notes.txt의 두 번째 줄이 비어 있다고 가정합니다.

alpha

beta

빈 줄은 유지되지만 번호를 받지 않습니다.

$ nl notes.txt
     1	alpha

     2	beta

nl은 번호가 붙은 출력을 쓰며 notes.txt를 수정하지 않습니다.

기본적으로 nl notes.txt는 빈 본문 줄을 어떻게 처리하나요?

모든 줄에 번호 붙이기

모든 줄에 번호를 붙이는 본문 번호 스타일 a를 선택하려면 -ba를 사용합니다.

$ nl -ba notes.txt
     1	alpha
     2
     3	beta

다른 옵션으로 서식을 제어할 수 있습니다. 예를 들어 -w 3은 번호 필드 너비를 정하고 -s ': '는 번호 뒤의 구분 기호를 바꿉니다.

빈 줄을 포함해 notes.txt의 모든 본문 줄에 번호를 붙이는 명령어는 무엇인가요?

레슨 완료

wc와 nl 완료

이제 원본을 편집하지 않고 텍스트 스트림을 측정하고 눈에 보이는 줄 번호를 추가할 수 있습니다.

  • wc의 기본 줄, 단어, 바이트 열을 해석할 수 있습니다.

  • -l, -w, -c, -m으로 한 가지 개수를 선택할 수 있습니다.

  • 바이트 수와 문자 수를 구분할 수 있습니다.

  • 기본 nl 동작으로 비어 있지 않은 줄에 번호를 붙일 수 있습니다.

  • nl -ba로 빈 줄에도 번호를 붙일 수 있습니다.

학습 진행 상황 저장

무료 계정을 만들어 이 레슨을 저장하고 어떤 기기에서든 계속 학습하세요.

무료 계정 만들기
다음 수업
Text-Fu(으)로 돌아가기