grep이 systemctl의 형식을 깨뜨립니다.

grep이 systemctl의 형식을 깨뜨립니다.

grep 없이 systemctl 명령을 호출하면 형식이 올바르게 표시됩니다.

여기에 이미지 설명을 입력하세요.

이제 "원사"로만 행을 필터링하려고 합니다. 하지만 이번에는 행이 두 부분으로 분할됩니다.

여기에 이미지 설명을 입력하세요.

콘솔 너비가 두 배로 넓어지면 같은 일이 발생합니다. 이 문제를 어떻게 해결할 수 있나요?

답변1

systemctl의 출력이 터미널로 전송되지 않는 경우 ,예를 들어로 파이프되면 grep출력의 각 열이 목록의 가장 긴 항목에 맞게 필요에 따라 커질 수 있습니다. 이것이 바로 여기서 일어나는 일입니다. 셀 목록의 일부 셀에 이름이 매우 길고 모든 셀의 출력을 정렬하면 yarn.service및 사이에 큰 공간이 생성됩니다 loaded failed failed.

셀 출력을 필터링하려면 systemctl기본 제공 패턴 일치를 사용하세요.

sudo systemctl list-units '*yarn*'

grep이 옵션을 사용하여 얻은 행 으로 출력을 제한하고 --no-legend, 이 옵션을 사용하여 색상 및 특수 문자를 사용하지 않고 --plain, 호출기를 시작하지 않도록 할 수 있습니다 --no-pager.

sudo systemctl list-units --plain --no-legend --no-pager '*yarn*'

여러 패턴을 지정할 수 있으며 결과에는 모든 패턴과 일치하는 항목이 포함됩니다.

sudo systemctl list-units --plain --no-legend --no-pager '*yarn*' '*hdfs*'

특정 장치의 상태를 검색하려면 더 나은 하위 명령이 있습니다.서비스가 스크립트에서 실행 중인지 테스트하는 "올바른" 방법.

관련 정보