이 명령을 사용하여 디렉터리의 일부 파일을 나열해야 ls
하지만 파일 크기도 숨겨야 합니다. ls
명령으로 어떻게 할 수 있나요 ?
답변1
다음을 사용하여 차단할 수 있습니다 awk
.
$ ls -l | awk '{print $1, $2, $3, $4, $6, $7, $8, $9}'
예
$ ls -l|awk '{print $1, $2, $3, $4, $6, $7, $8, $9}' | head -5
total 172136
drwxrwxr-x 2 saml saml Jan 16 2013 desktop-integration
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-base-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-binfilter-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-calc-3.6.5.2-2.x86_64.rpm
세부 사항
이 awk
명령은 자동으로 데이터를 열로 구문 분석하여 awk
크기 정보가 포함된 열인 다섯 번째 열을 제외한 모든 열을 인쇄하도록 지시합니다.
노트:하지만 이 방법을 권장하지는 않습니다. 단지 다른 도구(예: )로 파이프하는 방법을 보여주기 위해 이 방법을 보여 드리고 있습니다. awk
다음 방법은 특정 예제를 해결하는 데 선호되는 방법입니다!
더 간결한 awk 예
주석의 @val0x00ff 덕분에 awk
다섯 번째 열을 제외한 모든 열을 인쇄하도록 지시하는 더 효율적인 방법이 있습니다.
예
$ ls -l|awk '{$5=""; print}' | head -5
total 172136
drwxrwxr-x 2 saml saml Jan 16 2013 desktop-integration
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-base-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-binfilter-3.6.5.2-2.x86_64.rpm
-rw-r--r-- 1 saml saml Jan 16 2013 libobasis3.6-calc-3.6.5.2-2.x86_64.rpm
세부 사항
이 방법에서는 awk
다섯 번째 열을 빈 문자열로 설정하여 지우도록 지시합니다 ""
. 다른 모든 것은 그대로 유지됩니다. 그런 다음 awk
나머지 결과 문자열을 인쇄 하도록 지시합니다 .
답변2
ls
귀하의 질문에 따르면 귀하의 통화는 해당 옵션이 포함된 별칭이라고 가정합니다 -l
. 따라서 한 가지 방법은 예를 들어 다음을 호출하여 위의 옵션을 ls
사용하지 않는 것 입니다.-l
echo "call $(which ls)"
$(which ls)
또 다른 가능성은 실제로 해당 -l
옵션을 사용하고 싶지만 파일 크기가 변경될 때마다 다른 출력을 원하지 않는 경우입니다. 이 경우 크기가 1TB를 초과하는 파일이 없는 경우에만 사용할 수 있습니다. 모든 파일에 대해 1T를 보고하여 실제 파일 크기를 숨기고 파이프 및 기타 명령의 사용을 방지하는 다음 명령을 사용하십시오.
ls -l --block-size=T
물론 파이프 사용이 마음에 들지 않고 사용하고 싶다면 awk
@val0x00ff 덕분에 @slm이 게시한 솔루션을 사용하세요.
ls -l | awk '{$5=""; print}'