출력을 터미널 폭으로 트리밍하는 데 사용됩니까? 줄이 돌아옵니다. ps가 더 이상

내가 할 때

ps aux

긴 프로세스 설명에 두 줄 이상이 걸리지 않도록 출력이 터미널 너비에 맞게 잘립니다. 그러나 다른 것으로 파이프하면 긴 줄이 돌아옵니다.

ps가 더 이상 tty로 출력되지 않고 전체 출력이 처리에 중요하기 때문에 이것이 올바른 동작이라는 것을 알고 있습니다. 내가 원하는 것은 내가 끝나면 출력을 다시 자르는 또 다른 유틸리티입니다.

다음과 같이 할 수 있기를 원합니다.

ps aux | grep -v 'www-data' | nowrap

nowrap내가 찾고있는 상상의 도구입니다. 긴 줄이 잘리고 넘치지 않도록합니다.

이와 같은 것이 있습니까?



답변

cut명령을 사용 하여 출력을 슬라이스 할 수 있습니다 . 예를 들면 다음과 같습니다.

ps aux | grep -v 'www-data' | cut -c-80

각 줄의 처음 80 자만 유지합니다. 물론 원하는 너비로 설정할 수 있습니다.

bash 명령 줄을 사용하는 경우 다음을 수행 할 수 있습니다.

ps aux | grep -v 'www-data' | cut -c-$COLUMNS

출력에 탭이 있으면 너비가 올바르게 계산되지 않을 수 있습니다. expand탭을 공백으로 바꿀 수 있습니다.

ps aux | grep -v 'www-data' | expand | cut -c-$COLUMNS

답변

을 사용하여 출력을자를 수 있습니다 cut. 예 :

PS AUX | grep -v ‘www-data’| 컷 -c1-$ {COLUMNS}

여기서 ${COLUMNS}터미널의 현재 너비를 제공합니다. 이 resize명령을 사용하여 현재 너비를 다시 생성 할 수 있습니다.

$ resize
COLUMNS=80;
LINES=24;
export COLUMNS LINES;

이것을 자동화하고 싶다면 이것을 스크립트로 마무리하십시오 nowrap:

#!/bin/bash

eval "export $(resize | grep 'COLUMNS=')"
cut -c1-${COLUMNS} -

답변

그리고 nagul이 말한 것 외에도 bash에서 사용할 수 있습니다.

입력 열

너비를 얻으려면 :

COLUMNS = $ (열)