출력에서 slapcat 79 문자 줄바꿈 수정

출력에서 slapcat 79 문자 줄바꿈 수정

나는 매우 큰 LDAP 디렉토리에서 전체 텍스트 검색을 수행하기 위해 slapcat을 사용하고 있습니다. 어디를 봐야 할지 모를 때 내가 찾고 있는 것을 일치시키는 것이 더 쉽기 때문입니다.

문제는 포장이 너무 길다는 것

slapcat -v | grep -A 1 "some search string"
somelongvar::linesoftesttext12345667890987654321234567887654321234567897654321
 wraps like this

답변1

조금 늦었을 수도 있지만 man slapcat다음과 같습니다.

OPTIONS
       -o option[=value]
              Specify an option with a(n optional) value.  Possible generic options/values are:

                     syslog=<subsystems>  (see `-s' in slapd(8))
                     syslog-level=<level> (see `-S' in slapd(8))
                     syslog-user=<user>   (see `-l' in slapd(8))

                     ldif-wrap={no|<n>}

              n is the number of columns allowed for the LDIF output
              (n equal to 0 uses the default, corresponding to 78).
              The minimum is 2, leaving space for one character and one
              continuation character.
              Use no for no wrap.

slapcat -o ldif-wrap=no ...당신이 원하는 것도 마찬가지입니다.

답변2

이 답변에서 해결책을 찾았습니다.https://stackoverflow.com/a/10002241/619760

\n이는 a가 뒤에 오는 줄의 끝과 일치 하고 줄을 연결합니다.

slapcat -v | grep -A 1 "some search string" | sed '$!N;s/\n //;P;D'
somelongvar::linesoftesttext12345667890987654321234567887654321234567897654321wraps like this

답변3

사용행복하다(이전 Perl_6)

~$ raku -ne 'if .chars > 78 {put $_ ~ ($_ with get) } else { put $_ };'  file

slapcat출력 뿐만 아니라 해당 파일에 대해서도 이 문제를 재현할 수 있습니다 . 아래에서는 문자 "잘린 삼각형" 파일을 생성합니다 tri_N-to-Z.txt.

~$ raku -e 'for (0..12) -> $i { $_.[0..(25-$i)].join.put given "\x0061".."\x07A"};'  > tri_N-to-Z.txt

여기서는 20자로 줄 바꿈합니다(7줄 줄 바꿈)...

입력 예:

~$ cat tri_N-to-Z.txt | raku -pe 's/^ (.**20) /{"$0\n"}/;' > tri_N-to-Z_wrapped.txt
~$ cat tri_N-to-Z_wrapped.txt
abcdefghijklmnopqrst
uvwxyz
abcdefghijklmnopqrst
uvwxy
abcdefghijklmnopqrst
uvwx
abcdefghijklmnopqrst
uvw
abcdefghijklmnopqrst
uv
abcdefghijklmnopqrst
u
abcdefghijklmnopqrst

abcdefghijklmnopqrs
abcdefghijklmnopqr
abcdefghijklmnopq
abcdefghijklmnop
abcdefghijklmno
abcdefghijklmn

출력 예(원래 잘린 삼각형 다시 만들기):

~$ raku -ne 'if .chars > 19 {put $_ ~ ($_ with get) } else { put $_ };' tri_N-to-Z_wrapped.txt
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxy
abcdefghijklmnopqrstuvwx
abcdefghijklmnopqrstuvw
abcdefghijklmnopqrstuv
abcdefghijklmnopqrstu
abcdefghijklmnopqrst
abcdefghijklmnopqrs
abcdefghijklmnopqr
abcdefghijklmnopq
abcdefghijklmnop
abcdefghijklmno
abcdefghijklmn

참고: 코드는 기존 줄(예: 파일 끝)에서 호출되는지 ($_ with get)확인하기 위한 것입니다 ( 정의를 확인하세요).getwith

https://raku.org

관련 정보