터미널 출력을 파일에 지속적으로 쓰고 있습니까?

터미널 출력을 파일에 지속적으로 쓰고 있습니까?

10초마다 100-999 사이의 임의의 숫자를 인쇄하는 스크립트가 있는 경우 해당 정보를 .txt 파일로 어떻게 수집합니까? 가운데 숫자만 모으는 것도 가능한가요? 예: "659"에서 "5"를 수집합니다.

답변1

스크립트의 터미널 출력을 저장할 수 있습니다. 스크립트가 매번 숫자를 인쇄하는 경우 출력을 파일로 리디렉션하면 숫자가 저장됩니다.

script > file.txt

.

script >> file.txt

file.txt그런 다음 y 중심에 대한 5개의 결과만 표시합니다.

len=$(wc -l < file.txt);
#to store the length of file

len=$((($len/2)-3));  
#to get the middle of file

tail -n $len file.txt | head -n 5 ; 
#show 5 lines from midlle of file

답변2

이를 위해서는 여러 단계가 있습니다. 먼저 bash 출력을 텍스트 파일에 기록해야 합니다. 당신은 그것을 사용할 수 있습니다 tee.(맨 페이지) 스크립트를 "myscript"라고 부르겠습니다.

귀하의 의견을 다음 주소로 보내십시오.

tee /path/to/myscript.txt

그러면 bash 입력의 출력이 다음에 기록됩니다./path/to/myscript.txt

그래서 그것은 다음과 같습니다

sh /path/to/myscript.sh | tee /path/to/myscript.txt

에서 표준 텍스트 처리를 수행할 수 있습니다 /path/to/myscript.txt.

"중앙값"을 사용하면 행 수가 짝수인지 홀수인지에 따라 달라지므로 중간이 무엇을 의미하는지 완전히 확신할 수 없습니다. 하지만 sed를 사용하여 원하는 줄을 인쇄할 수 있습니다.

sed -n 'x,yp' /path/to/myscript.txt

인쇄하려는 줄 간격의 경계는 어디 x입니까 ?y

답변3

script | tee path/to/file.txt

script | cut -c 2

script | cut -c 2 | tee path/to/file.txt

관련 정보