grep, sed 또는 awk를 사용하여 파일에서 줄을 추출 하시겠습니까?


-1

openLDAP 인증에서 다른 인증 방법으로 마이그레이션하고 싶습니다. 내 주요 문제는 sudoers이며 수동으로 마이그레이션해야합니다.

따라서이를위한 스크립트를 만들어야합니다. 이것을 위해 bash를 사용하고 싶습니다. ldif 파일에는 다음과 같은 줄이 포함됩니다.

dn: cn=Devs, ou=SUDOers, dc=example,dc=com
sudoUser: %devs
sudoCommand: /bin/su - command
sudoCommand: /bin/su - wwwadmin
sudoHost: ALL
description: Developer Admin
objectClass: sudoRole
cn: Devs

그래서 내가해야 할 일은 다음과 같습니다.

  1. LDIF 파일을 읽으십시오.
  2. dn :과 빈 줄 OR 또는 cn : Devs를 포함하는 줄 사이의 모든 줄을 추출합니다.

임베디드 BASH 명령, grep, awk, sed 등 만 사용하고 싶습니다.

파이썬, PHP, 펄 등이 없습니다.


원하는 속성 만 ldiff 파일로 직접 출력하지 않습니까?
Zumo de Vidrio

왜냐하면 100 개의 LDAP 쿼리를 수행해야합니다.
Peter

펄 없음? 파이썬이 없습니까? 추가 LDAP 쿼리가 없습니까? 무엇 일부러 어려운 길을 선택와의 ...?
grawity

1
있습니다 superuser.com이 무료 스크립트 / 코드 작성 서비스가 아닙니다. 지금까지 시도한 내용 (이미 사용중인 스크립트 / 코드 포함)과 중단 된 부분을 알려 주면 특정 문제에 대한 도움을 요청할 수 있습니다. 또한 좋은 질문을하려면 어떻게해야합니까?를 읽어보십시오 . .
DavidPostill

1
데이비드, 난 당신의 의견의 요점을 볼 수 없습니다 나는 누군가에게 나의 대본을 쓰라고 요구하지 않습니다. 감사합니다. 특정 명령을 사용하는 방법을 묻습니다. 어쨌든, 나는 내가 할 수있는 것을 찾았고 내 자신의 질문에 대답 할 것입니다.
Peter

답변:


1

sed를 사용하는 쉬운 방법을 찾았습니다.

sed -n '/start_search/,/end_search/p' filename)
  • start_search는 첫 번째 줄의 패턴입니다
  • end_search는 마지막 줄의 패턴입니다.

필자의 경우 start_search는 'dn : cn ='이고 end_search는 '^ cn :'또는 '^ $'입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.