간단한 작업을 완료하려면 grep, sed 등을 사용하세요.

간단한 작업을 완료하려면 grep, sed 등을 사용하세요.

의 출력은 du -sh folder일부 차원과 폴더입니다. 유사한 기능을 사용하여 차원을 얻으려면 어떻게 해야 합니까 grep -o '*G'? 즉, 폴더 이름을 제거합니까?

답변1

간단한 cut솔루션을 제공할 수 있습니다.

du -sh . | cut -f1

표준 구분 기호 cut는 탭이므로 추가 옵션이 필요하지 않습니다. 필드 1을 인쇄하세요.

귀하의 의견에 따르면 리소스/속도에 관심이 있는 것 같으므로 Giles의 다른 답변을 인용하십시오.

"일반적으로 말하면 도구가 전문화될수록 속도가 빨라집니다. 따라서 대부분의 경우 합계가 더 빨라지고 합계도 더 빨라질 것으로 예상 cutgrepsed있습니다 sed. awk"

에서 인용여기

time이 두 명령의 출력은 다음과 같습니다.

time du -sh /folder | awk '{print $1}'
60K

real    0m0.005s
user    0m0.002s
sys     0m0.004s

time du -sh /folder | cut -f1
60k

real    0m0.003s
user    0m0.000s
sys     0m0.004s

공정한 테스트를 위해서는 여러 번 반복하고 평균을 내야 한다고 생각하지만 어느 쪽이든 별 내용이 없습니다. 기술적으로 절단은 "더 빨라"야 합니다.

답변2

awk를 사용하여 첫 번째 열만 인쇄할 수 있습니다.

du -sh folder | awk '{print $1}'

파일의 경우 awk도 사용하세요.

awk '!($3="")' file

관련 정보