텍스트를 인쇄하는 while 루프가 있는 스크립트가 있습니다. 사용자 정의 이름으로 파일에 저장하고 싶습니다.
스크립트:
#!/bin/bash
while true
do
echo "Press [CTRL+C] to stop.."
done
분할을 실행할 수 있습니다.
./loopscript.sh | split -dl 10000 --additional-suffix=.txt
산출:
x001.txt
x002.txt
x003.txt
x004.txt
x005.txt
하지만 아래와 같이 저장하고 싶습니다.
myoutput.001.gz
myoutput.002.gz
myoutput.003.gz
myoutput.004.gz
myoutput.005.gz
답변1
사용자 정의 이름(접두사)의 경우 끝에 매개변수로 추가할 수 있습니다. 모든 출력 파일을 필터링하려면 gzip
이 옵션을 사용할 수 있습니다 --filter=COMMAND
. -a3
접미사 길이를 3자(등)로 정의해야 하는 경우 001
에도 선택 사항입니다 002
. 또한 -
표준 입력에서 읽기 전에 출력 접두사 매개변수를 기록해 두십시오.
./loopscript.sh | split -a3 -dl 10000 --filter='gzip > $FILE.gz' - myoutput.
다음 이름의 gzip 파일이 생성됩니다(압축을 풀면 10K 라인).
myoutput.000.gz
myoutput.001.gz
myoutput.002.gz
구문적으로 man split
출력은 (선택적으로) 끝에 접두사가 붙습니다.
SYNOPSIS
split [OPTION]... [FILE [PREFIX]]
그리고 명령 에서 파일 이름을 --filter
수락합니다 .$FILE
split
--filter=COMMAND
write to shell COMMAND; file name is $FILE