각 명령으로 인쇄된 줄 수를 자동으로 계산하는 방법은 무엇입니까?
예:
$ 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개인 경우 위의 코드 블록이 제대로 작동하지 않으므로 머리 부분에 빈 행을 추가하십시오.cat
n
헤더에 줄 번호를 추가하는 옵션이 있는 명령tac
표준 입력을 반전시키는 명령while
루프 에서 반전된 첫 번째 줄 번호와 stdin을 인쇄합니다.- 마지막으로 예상 출력을
tac
다시 인쇄하십시오.tail -n +2
- 등
ls -1
으로 대체 할 수도 있습니다echo xxx
.> t0.txt