사용자가 텍스트를 입력할 수 있도록 하고 동일한 텍스트를 여러 줄로 출력하는 스크립트를 만들고 싶습니다.
예:
입력하다:
Hi Jack,
how are you?
산출:
0001: Hi Jack,
0002: how are you?
답변1
간단한 해결책 read
:
I=0; while read -r; do ((I++)); echo "$I: $REPLY"; done< test.txt;
여기서 test.txt를 스크립트 매개변수로 변경할 수 있습니다.
bash 변수를 사용하지 않으려면 다음을 수행하십시오 REPLY
.
I=0; while read -r LINE; do ((I++)); echo "$I: $LINE"; done< test.txt;
아니면 "LINE"을 대체할 다른 것
답변2
출력을 파이프할 수 있습니다.nl
예
ls /etc | head | nl --number-separator=$':\t' --number-format=rz --number-width=4
0001: alternatives
0002: bash.bash_logout
0003: bash.bashrc
0004: bash_completion.d
0005: csh.cshrc
0006: csh.login
0007: dbus-1
0008: defaults
0009: drirc
0010: fonts
:
입력 텍스트에서 콜론( )을 공백 하나로 구분하려면 --number-separator 매개변수를 에서 로 변경 $':\t'
합니다 ': '
.