프롬프트에서:
ls | awk '{printf("%s\t\t%s\n", $9, $3);}'
인쇄해야 할 내용을 성공적으로 인쇄했습니다. 이것을 파일에 넣으면 4~5개의 빈 줄이 표시됩니다(대략 출력의 줄 수 ls
).
$ cat awk-file-owner-simple
#!/bin/bash
ls | awk '{printf("%s\t\t%s\n", $9, $3);}'
$ ./awk-file-owner-simple
_
_
_
_
여기서는 _
빈 줄을 나타냅니다(Stackexchange의 코드 포맷터를 사용하여 표시할 수 없음).
답변1
로 변경 .ls |
ls -l |
분명히 셸에서 별칭을 사용하고 있습니다 ls
( ls -l
아마도 함수 및/또는 기타 옵션). 이를 사용하여 type ls
실제로 실행하는 내용을 확인하세요. 스크립트에는 별칭이 없으므로 정상적으로 실행되고 ls
단일 출력 열이 있습니다.
답변2
또는 coreutils 패키지의 stat(1)을 사용하십시오.
stat --printf="%-20n %U\n" *