각 명령으로 인쇄된 줄 수를 자동으로 계산하는 방법은 무엇입니까?

각 명령으로 인쇄된 줄 수를 자동으로 계산하는 방법은 무엇입니까?

각 명령으로 인쇄된 줄 수를 자동으로 계산하는 방법은 무엇입니까?

예:

$ echo xxx
xxx
1

$ ls -1
xxx
yyy
zzz
3

$ > t0.txt
0

etc.

즉, 올바르게 | wc -l추가 하는 방법은 무엇입니까 .bashrc?

답변1

Bash를 사용하여 여러 명령을 결합하십시오.

ls -1 \
    | cat <(echo) - \
    | cat -n \
    | tac \
    | cat -n \
    | while read i n line; do
        if [[ $i == 1 ]]; then
            echo $((n - 1))
        fi
        echo $line
    done \
    | tac \
    | tail -n +2

산출:

xxx
yyy
zzz
3
  • cat <(echo) -stdin에 행이 0개인 경우 위의 코드 블록이 제대로 작동하지 않으므로 머리 부분에 빈 행을 추가하십시오.
  • catn헤더에 줄 번호를 추가하는 옵션이 있는 명령
  • tac표준 입력을 반전시키는 명령
  • while루프 에서 반전된 첫 번째 줄 번호와 stdin을 인쇄합니다.
  • 마지막으로 예상 출력을 tac다시 인쇄하십시오.tail -n +2
  • ls -1으로 대체 할 수도 있습니다 echo xxx.> t0.txt

관련 정보