파일 끝에 단어 수 결과를 추가합니다.

파일 끝에 단어 수 결과를 추가합니다.

example.txt줄 수를 세어 그 결과를 이 파일 끝에 추가하고 싶습니다 . 어떻게 해야 하나요?

나는 시도했다:

wc -l > example.txt

답변1

wc -l example.txt >> example.txt

답변2

아시다시피 wc -l에는 기본적으로 결과 번호와 파일 이름이 포함됩니다. 어떤 이유로든 결과 숫자만 표시하는 것이 더 나은 경우 다음을 시도해 보세요.

wc -l example.txt | cut -d' ' -f1 >> example.txt

따라서 example.txt가 3줄로만 시작한다면 다음과 같습니다.

a
b
c

위 명령을 실행한 후 tail마지막 몇 줄 보기를 사용하면(이 경우 줄이 거의 없으므로 전체 파일을 볼 수 있음) 다음을 볼 수 있습니다.

$ tail example.txt
a
b
c
3

설명하다

  • wc -l example.txt결과 줄과 파일 이름의 기본 수를 제공하는 것이 무엇인지 이미 알고 있습니다 .3 example.txt
  • cut명령은 행에서 "필드"를 추출하는 데 도움이 됩니다.
  • -d구분 기호/필드 구분 기호를 설정하는 데 사용되며 ' '공백으로 지정합니다.
  • -f1메서드는 첫 번째 필드를 선택하므로 주어진 wc출력은 3 example.txt첫 번째 3필드 입니다.
  • >>추가하여 결과를 3파일 끝에 저장합니다.example.txt

답변3

다음 스크립트는 파일이 아직 없으면 파일 끝에 줄 수를 추가하고, 이미 있으면 제거하고 바꿉니다.

이렇게 하면 여러 "줄 수:" 줄을 추가하지 않고도 파일을 편집할 때마다 이 스크립트를 실행할 수 있습니다.

#! /bin/bash

count=$(wc -l "$1" | cut -d' ' -f1)

tail -1 "$1" | grep -q '^Line count: '
if [ $? ]; then
    count=$(( $count - 1 )) # don't count the 'Line count' line
    sed -i -e '$ d' "$1"
    echo "Line count: $count" >> "$1"
else
    echo "Line count: $count" >> "$1"
fi

답변4

추가오직행 수, 이것을 시도해 볼 수 있습니다

$ cat example.txt | wc -l >> example.txt

파일의 총 줄 수만 표시됩니다.

관련 정보