명령 창에 표시된 텍스트를 다른 텍스트로 바꿀 수 있습니까?

명령 창에 표시된 텍스트를 다른 텍스트로 바꿀 수 있습니까?

사용자 계정을 관리하려고 합니다. 기본적으로 숫자일 뿐이지만 화면에 사용자의 성이 표시되는 것이 더 좋습니다. 표시된 텍스트를 다른 콘텐츠로 자동 교체할 수 있나요?

예를 들어 로 이동하여 /home/users을 입력하면 ls-al다음과 같은 내용을 볼 수 있습니다.

Smith
Johnson
Adams
Andrews

바꾸다

001 
002 
003 
004

아니면 어떻게든 둘 다 볼 수 있나요?

001 "Smith"
002 "Johnson"
003 "Adams"
004 "Andrews"

답변1

제가 이해한 것이 맞다면 모든 사용자의 이름을 번호로 지정했으며 사용자의 성을 확인하고 싶다는 것입니다.

그들의 성은 어디에 저장되어 있나요? 즉, 이름과 번호 사이에 연관성을 설정해야 합니다. 이 정보의 출처는 어디입니까?

lsNUMBER를 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로 점진적으로 시작하는 것은 확실히 이상적이지 않습니다.

관련 정보