나는 방금 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
중복을 제거할 수 있습니다.