사용자 계정을 관리하려고 합니다. 기본적으로 숫자일 뿐이지만 화면에 사용자의 성이 표시되는 것이 더 좋습니다. 표시된 텍스트를 다른 콘텐츠로 자동 교체할 수 있나요?
예를 들어 로 이동하여 /home/users
을 입력하면 ls-al
다음과 같은 내용을 볼 수 있습니다.
Smith
Johnson
Adams
Andrews
바꾸다
001
002
003
004
아니면 어떻게든 둘 다 볼 수 있나요?
001 "Smith"
002 "Johnson"
003 "Adams"
004 "Andrews"
답변1
제가 이해한 것이 맞다면 모든 사용자의 이름을 번호로 지정했으며 사용자의 성을 확인하고 싶다는 것입니다.
그들의 성은 어디에 저장되어 있나요? 즉, 이름과 번호 사이에 연관성을 설정해야 합니다. 이 정보의 출처는 어디입니까?
ls
NUMBER를 LAST-NAME과 연결하는 마스터 목록이 있다고 가정하면 직접 프런트 엔드를 설정할 수 있습니다. 예를 들어:
"usernames.list" 파일이 있는 경우:
001 Smith
002 Johnson
003 Adams
004 Andrews
ls
그런 다음 다시 구현 하지만 목록과 /home에서 찾은 키 사이에 상관 관계가 있는 루프를 작성할 수 있습니다 .
for DIR in * ; do fgrep ${DIR} /path/to/usernames.list ; done
그러면 다음이 인쇄됩니다:
001 Smith
002 Johnson
003 Adams
004 Andrews
사용자 목록이 이러한 키/값 쌍보다 더 복잡한 경우 cut
이를 사용하여 필요에 따라 정보를 구문 분석할 수 있습니다.
참고로 이는 사용자를 관리하는 표준 방법이 아닙니다.
POSIX 시스템의 사용자는 이미 고유 식별자(사용자 ID, 명령 참조 id
)를 가지고 있으므로 모든 사용자의 이름을 001로 점진적으로 시작하는 것은 확실히 이상적이지 않습니다.