그래서 나는 다음을 사용했습니다.
getent passwd $2 | awk -F: '{print "|Username: " $1 "\n|Password: " $2 "\n|Uid: " $3 "\n|Gid: " $4 "\n|Comment: " $5 "\n|Home: " $6 "\n|Shell: " $7 "\n"}'
사용자 정보를 깔끔한 목록에 입력하세요.
폴더에서도 같은 작업을 수행하고 싶습니다. 나는 "ls -l" 명령의 모든 정보를 원하지만, 그것이 테스트 블록처럼 나타나는 대신 하나씩 나열되기를 원합니다.
awk
와 함께 명령을 사용할 수 있나요 ls
? 이전에 사용했던 방법을 그대로 사용할 수 있나요?
답변1
Linux를 사용하고 있으므로 stat
올바른 형식( -c
, --format
)으로 명령을 살펴보아야 합니다. 잘 알려지지 않은 기능인 이 형식은 C 스타일 길이 지정자를 허용하므로 예를 들어 시도해 보세요.
stat -c 'File: %-40n Size: %6s Flags: %8A' *
임의의 문자열을 형식에 넣을 수 있으며, 심지어 개행 문자도 넣을 수 있습니다(구문 사용 $'string'
).
stat -c $'--------------\nFile: %n\nSize: %s\nFlags: %A' /boot/*
--------------
File: /boot/abi-4.13.0-45-generic
Size: 1501528
Flags: -rw-r--r--
--------------
File: /boot/config-4.13.0-45-generic
Size: 213220
Flags: -rw-r--r--
--------------
File: /boot/config-4.15.0-72-generic
Size: 217468
Flags: -rw-r--r--
--------------
File: /boot/config-4.15.0-74-generic
Size: 217503
Flags: -rw-r--r--
--------------
File: /boot/config-4.15.0-76-generic
Size: 217503
Flags: -rw-r--r--