일부 사용자의 UID/GID를 확인하기 위해 dscacheutil 명령을 사용하고 있습니다. -A 플래그와 함께 grep을 사용하면 필요한 작업이 수행되지만 줄 수는 의미가 없습니다. 출력은 다음과 같습니다.
Edit8:~ edit08$ dscacheutil -q user | grep -A 6 "userX"
name: userX
password: ********
uid: 2063
gid: 1021
dir: /Users/userX
shell: /bin/sh
gecos: User X
name: userA
password: ********
uid: 2013
Edit8:~ edit08$ dscacheutil -q user | grep -A 4 "userX"
name: userX
password: ********
uid: 2063
gid: 1021
dir: /Users/userX
shell: /bin/sh
gecos: User X
name: userA
Edit8:~ edit08$ dscacheutil -q user | grep -A 2 "userX"
name: userX
password: ********
uid: 2063
--
dir: /Users/userX
shell: /bin/sh
gecos: User X
Edit8:~ edit08$ dscacheutil -q user | grep -6 "userX"
uid: 2012
gid: 1010
dir: /Users/userB
shell: /bin/sh
gecos: User B
name: userX
password: ********
uid: 2063
gid: 1021
dir: /Users/userX
shell: /bin/sh
gecos: User X
name: userA
password: ********
uid: 2013
Edit8:~ edit08$ dscacheutil -q user | grep -A 2 "userX"
name: userX
password: ********
uid: 2063
--
dir: /Users/userX
shell: /bin/sh
gecos: User X
Edit8:~ edit08$ dscacheutil -q user | grep -A 3 "userX"
name: userX
password: ********
uid: 2063
gid: 1021
dir: /Users/userX
shell: /bin/sh
gecos: User X
Edit8:~ edit08$
내 논리에서는 행 수가 6이어야 한다고 지시하지만 실제로는 3입니다.
거기 누구 없어요?
감사해요
답변1
~~~
패턴과 일치하는 줄을 표시 하고 다음 줄에 번호를 매겼습니다.
Edit8:~ edit08$ dscacheutil -q user | grep -A 6 "userX"
~~~ name: userX
1 password: ********
2 uid: 2063
3 gid: 1021
~~~ dir: /Users/userX
1 shell: /bin/sh
2 gecos: User X
3
4 name: userA
5 password: ********
6 uid: 2013
Edit8:~ edit08$ dscacheutil -q user | grep -A 3 "userX"
~~~ name: userX
1 password: ********
2 uid: 2063
3 gid: 1021
~~~ dir: /Users/userX
1 shell: /bin/sh
2 gecos: User X
3
보시다시피 grep -A n
관련 일치 항목보다 더 많은 행이 표시되지 않습니다. n
일치 항목이 서로 가까워서 포함된 행이 길어집니다.
답변2
매뉴얼 페이지에서:
-A NUM, --after-context=NUM
줄을 일치시킨 후 NUM 줄 후행 컨텍스트를 인쇄합니다. 연속적으로 일치하는 그룹 사이에 그룹 구분 기호(--)가 포함된 줄을 배치합니다. -o 또는 --only-matching 옵션을 사용하면 효과가 없으며 경고가 표시됩니다.
귀하가 제공하는 모든 예에서 각 인스턴스 userX
뒤에는 올바른 수의 컨텍스트 줄이 나옵니다. 다른 인스턴스가 userX
다른 인스턴스의 컨텍스트에 나타나는 경우 컨텍스트는 두 번째 인스턴스 뒤의 모든 줄로 확장됩니다.