
방금 Linux 강좌를 듣기 시작했는데 과제가 계속 진행 중입니다.
8자 미만의 사용자 이름으로 로그인한 사용자의 사용자 이름을 찾아야 합니다. 다음은 내가 시도했지만 작동하지 않는 명령입니다. 누군가 내가 잘못한 일을 조언해 주실 수 있나요?
who | grep '[a-zA-Z0-9]\{1,7\}'
다음 명령은 8자의 사용자 이름을 반환합니다(테스트해본 결과 작동합니다).
who | grep '[a-zA-Z0-9]\{8\}'
답변1
을 사용하도록 제한되지 않은 경우 각 줄을 공백으로 구분된 열로 자연스럽게 나눈 다음 첫 번째 열에 8자 미만이 포함된 행을 요청하는 를 grep
사용하는 것이 좋습니다 .awk
who | awk 'length($1) < 8 {print $1}'
주어진 출력은 who
다음과 같습니다.
user1 pts/1 2019-11-24 16:31 (host1.example.com)
user1 pts/2 2019-11-24 16:31 (host1.example.com)
deadbeef pts/3 2019-11-24 20:39 (host2.example.com)
aperson pts/4 2019-11-24 20:39 (host3.example.com)
igotroot pts/5 2019-11-24 20:39 (host4.example.com)
위 awk
명령은 다음을 생성합니다.
user1
user1
aperson
출력을 파이프 awk
로 파이프하여 sort -u
중복을 제거할 수 있습니다.