CLI에서 잘라내 기가 예상대로 작동하지 않습니다. 매회 전체 줄을 반환합니다. 소유자 목록을 얻으려고합니다. 나는 이렇게하려고 노력하고 있지만

저는 MacOS Mojave를 사용하고 있으며 주어진 경로에서 파일 소유자 목록을 얻으려고합니다. 나는 이렇게하려고 노력하고 있지만 작동하지 않습니다.

$ ls -l /usr | cut -f3
total 0
drwxr-xr-x  971 root  wheel  31072 23 sty 20:05 bin
drwxr-xr-x  304 root  wheel   9728 23 sty 20:05 lib
drwxr-xr-x  248 root  wheel   7936 23 sty 20:05 libexec
drwxr-xr-x   16 root  wheel    512  3 lis 10:50 local
drwxr-xr-x  239 root  wheel   7648 23 sty 20:05 sbin
drwxr-xr-x   46 root  wheel   1472  3 lis 10:41 share
drwxr-xr-x    5 root  wheel    160 21 wrz 06:06 standalone

구분 문자를 지정하는 것은 작동하지만 TAB 문자에는 해당하지 않습니다 (기본값이어야 함).

$ ls -l /usr | cut -f3 -d' '

971
304
248

239

오, 내 zsh 및 iTerm 2와 함께 ZSH를 사용하고 있습니다.



답변

공백을 하나의 공백으로 넣을 수 있습니다. ls 출력이 다음 사용 cut.

ls -l /usr | tr -s ' ' | cut -d ' ' -f3

구문 분석은 피하십시오. ls 산출. 여기에 대체 솔루션이 있습니다.

stat -f'%Su' /usr/*


답변

ls 탭을 사용하지 않습니다. cut 필드 사이의 구분 기호의 가변 개수로 작동하지 않습니다.

ls -l /usr | awk '{print $3}'

작동 할 것이다.

ls -l /usr | awk 'NR > 1 {print $3}'

첫 번째 줄을 건너 뛰려면 ( total 0 귀하의 예에서).


답변