grep은 ','를 사용하여 두 숫자의 형식을 지정합니다.

grep은 ','를 사용하여 두 숫자의 형식을 지정합니다.
sensors|grep -oP "Core 1:\s*\+\K[0-9]+" >> lmsenreading1.txt

그 다음에:

sensors|grep -oP "Core 0:\s*\+\K[0-9]+" >> lmsenreading0.txt

.txt그런 다음 구분 기호를 사용하여 두 파일을 연결합니다 ,. 예를 들어 다음과 같이 제공되어야 합니다.65,66

내가 사용한다면

sensors|grep -oP ":\s*\+\K[0-9]+"

내 출력은

27

65

66

이는 27필수가 아닙니다.

출력 형식을 지정하는 방법 sensors|grep -oP ":\s*\+\K[0-9]+" :

65,66

답변1

"Core"를 grep할 수 있습니다. 이는 Core 0 및 Core 1(내 시스템 0 및 2)과 일치합니다.

sensors | grep -oP "Core .:\s*\+\K[0-9]+" | tr "\n" "," 
46,42,

그리고 tr(anslate)를 사용하여 개행 문자를 쉼표로 변경하세요.

그러면 끝에 추가 쉼표가 생깁니다.

시작(0)부터 끝(-1) 이전까지 부분 문자열을 추가하여 제거할 수 있습니다.

sens=$(sensors | grep -oP "Core .:\s*\+\K[0-9]+" | tr "\n" ",")
echo ${sens: 0: -1}
47,44

답변2

파일이나 변수가 필요하지 않습니다. 다음을 사용하세요 printf.명령 대체:

printf '%s,%s\n' $(sensors | grep -oP 'Core [01]:\s*\+\K[0-9]+')

내 시스템의 출력:

53,54

주의하시기 바랍니다grep 정규식: 단일 문자 대신0그리고1코어 번호를 지정하기 위해 문자 클래스는 [01]두 코어를 모두 확인합니다.

관련 정보