Program Club

대지의 입력 문자열에서 개행 문자를 제거하는 가장 쉬운 방법

proclub 2020. 12. 29. 07:30
반응형

대지의 입력 문자열에서 개행 문자를 제거하는 가장 쉬운 방법


다음 명령 (OS X 10.6)을 실행할 때 사용 사례를 설명하는 것이 상당히 간단하기를 바랍니다.

$ pwd | pbcopy

대지에는 끝에 개행 문자가 있습니다. 나는 그것을 제거하고 싶다.


pwd | tr -d '\n' | pbcopy


printf $(pwd) | pbcopy

또는

echo -n $(pwd) | pbcopy

디렉토리 이름에 공백 문자가있는 경우 실제로 따옴표로 묶어야합니다. 예를 들면 :

echo -n "$(pwd)" | pbcopy

noeol이 문제를 해결하기 위해 라는 유틸리티를 작성했습니다 . stdin을 stdout으로 파이프하지만 후행 줄 바꿈이 있으면 생략합니다.

pwd | noeol | pbcopy

... 나는 별명 copynoeol | pbcopy.

여기에서 확인하세요 : https://github.com/Sidnicious/noeol


저에게는 tr -d '\n'접근 방식에 문제가있었습니다 . OSX에서는 .NET을 통해 coreutils 패키지를 설치했습니다 brew install coreutils. 이것은 g일반적인 이름 앞에 접두사가 붙은 모든 "일반적인"GNU 유틸리티를 제공합니다 . 그래서 headghead, 예를 들면.

이것을 사용하면 IMO가 더 안전하게 작동했습니다.

pwd | ghead -c -1 | pbcopy

를 사용 od하여 출력에 어떤 일이 발생하는지 확인할 수 있습니다 .

$ pwd | ghead -c -1 | /usr/bin/od -h
0000000      552f    6573    7372    732f    696d    676e    6c6f    6c65
0000020      696c
0000022

$ pwd | /usr/bin/od -h
0000000      552f    6573    7372    732f    696d    676e    6c6f    6c65
0000020      696c    000a
0000023

차이점?

000a널로와 줄 바꿈에 대한 hexcodes 있습니다. ghead -c -1단지에 나눠 그것을 떨어져 전에 출력에서 마지막 문자를 "chomps" | pbcopy.

$ man ascii | grep -E '\b00\b|\b0a\b'
     00 nul   01 soh   02 stx   03 etx   04 eot   05 enq   06 ack   07 bel
     08 bs    09 ht    0a nl    0b vt    0c np    0d cr    0e so    0f si

참조 URL : https://stackoverflow.com/questions/3482289/easiest-way-to-strip-newline-character-from-input-string-in-pasteboard

반응형