터미널 출력에서 ​​필요한 라인 만 어떻게 검색합니까?


16

세 번째 df -h출력 줄만 말하고 싶습니다 .

어떤 종류의 명령을 사용해야합니까?


16
미래에 대한 참고 사항 : 이 질문은 매우 기본적입니다. 일반적으로 특정 노력과 요청하기 전에 시도한 사항을 보여주는 것이 좋습니다.
Sergiy Kolodyazhnyy 2016 년

추정 된 정적 형식으로 파일의 3 번째 라인을 얻는 것이 합법적 일 수 있지만, 시스템 상태에 따라 다양한 출력을 갖는 진단 프로그램의 3 번째 라인과 다릅니다. 예를 들어 현재 세 번째 줄이 불기 전에 새 드라이브 / 파티션을 사전 순으로 마운트하십시오. 따라서 @ Random832의 답변은 아래가 가장 좋습니다.
MarkHu 2016 년

답변:


31

내용에 관계없이 세 번째 줄을 출력합니다.

df -h | sed -n 3p

가장 작은 답은 +1 : df -h|sed -n 3p.
EKons

16

df명령은 실제로 원하는 파일 시스템을 식별하는 인수를 허용합니다. 예를 들어 df /home또는을 사용할 수 있습니다 df /dev/sda3.

스크립트의 출력을 구문 분석하려는 경우 df -P여러 줄로 줄 바꿈되지 않도록하는 것이 좋습니다. 예를 들어, 사용할 수 있습니다 df -Ph /home | tail -n +2(그러나 스크립트의 출력을 구문 분석하는 경우 파일 이름에 공백이있는 가능성을 알고 있어야 함)


2
그게 다야! 대신 출력을 구문 분석, 제공하는 명령을 사용하여 단지 당신이 원하는.
fedorqui 2016 년

1
그러나 OP는 3 번 라인 df /home에 헤더를 제공하고 싶다고 말했다 . 사용자의 목적을 해석하고 있습니다. 당신이 옳을 수도 있습니다. 당신은 틀렸을 지 누가 알 겠어요?
Mike S

@MikeS 12 개의 다른 답변은 컨텍스트없이 3 번 라인을 얻는 것을 이미 다루었습니다. OP가 유용 할 경우 OP가 가질 수 있도록 추가 정보를 제공했습니다. 그리고 tail -n +2헤더를 제거합니다.
Random832

14

head및 의 조합을 사용할 수 있습니다 tail.

df -h | head -3 | tail -1

또는

df -h | tail -n +3 | head -1

그러나 자체 df옵션에서 출력을 필터링 할 수 있으므로 df외부 명령을 사용하기 전에 먼저 출력을 살펴보십시오.

확인하십시오 man df.


4
df가 특정 항목을 필터링 할 수 있다고 언급하면 ​​+1
Sergiy Kolodyazhnyy

2
실제로 외부 프로그램으로 파이프하기 전에 항상 데이터 자체를 필터링하는 것이 좋습니다.
Zach Mertes 2016 년


6

필자는 반드시 세 번째 줄을 찾는 것이 아니라 특정 디스크 (예 :) /dev/sda3또는 특정 마운트 지점 (예 :)을 언급하는 줄을 찾는다고 가정합니다 /home.

따라서 출력 순서가 변경되어 다른 결과를 얻을 수 있기 때문에 안전하지 않은 세 번째 행만 표시하는 대신 컨텐츠로 출력을 필터링하고 특정 패턴과 일치하거나 키워드를 포함하는 행만 표시 할 수 있습니다.

이 도구는 grep입니다.

예를 들어 device /dev/sda3에 대한 줄을 원하면 다음 을 입력하십시오.

df -h | grep '/dev/sda3'

홈 디렉토리를 마운트 지점으로 언급하는 행을 원하면 다음을 사용하십시오.

df -h | grep '/home'

3
또는 df -h /dev/sda3또는 df -h /home(후자는 마운트 지점이 아니더라도 작동합니다).
Random832

6

당신은 또한 사용할 수 있습니다 perl:

df -h | perl -ne 'print if $.==3' 

$.당신이 N 번째 라인을 인쇄 할 수 있도록, 현재의 행 번호입니다 perl -ne 'print if $.==N'.


1
이것이 Perl이 여전히 제 관점과 관련이있는 이유입니다. 그것은 sed와 awk를 구조화 된 프로그래밍 언어와 결합합니다. 고마워요 좀 더 장황하면 이것은 sed 예제와 거의 비슷합니다.
Mike S

@MikeS가 도와 드리겠습니다. 그러나 Perl 해커로서 Perl 코드는 사용자가 만드는 것만 큼 추악하다는 점을 지적해야합니다. 훌륭한 프로그래머는 Perl에서 아름다운 코드를 작성할 수 있습니다. 단지 언어가 당신을 강요하지 않으며 쉽지 않습니다.
terdon

2

내 첫 번째 아이디어는 머리 꼬리 구조입니다.

예:

df -h | head -3 | tail -1

head -3세 줄 후에 출력이 중단 tail -1되고 마지막 줄만 출력됩니다.

또는 출력이 어떻게 표시되는지 알고 있다면 grep특정 문자열이 포함 된 행을 찾는 데 사용할 수도 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.