GNU를 사용하는 경우 명령을 압축 할 수 있습니다 sed
.
$ sed 's/^[ \t]*//;s/[ \t]*$//' < file
예
위의 명령이 작동합니다.
$ echo -e " \t blahblah \t " | sed 's/^[ \t]*//;s/[ \t]*$//'
blahblah
명령이 원하는 문자를 올바르게 제거 hexdump
하는지 확인하는 데 사용할 수 있습니다 sed
.
$ echo -e " \t blahblah \t " | sed 's/^[ \t]*//;s/[ \t]*$//' | hexdump -C
00000000 62 6c 61 68 62 6c 61 68 0a |blahblah.|
00000009
캐릭터 클래스
문자 그대로 다음과 같은 세트를 나열하는 대신 문자 클래스 이름을 사용할 수도 있습니다 [ \t]
.
$ sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//' < file
예
$ echo -e " \t blahblah \t " | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//'
정규식 (regex)을 사용하는 대부분의 GNU 도구는 이러한 클래스를 지원합니다.
[[:alnum:]] - [A-Za-z0-9] Alphanumeric characters
[[:alpha:]] - [A-Za-z] Alphabetic characters
[[:blank:]] - [ \x09] Space or tab characters only
[[:cntrl:]] - [\x00-\x19\x7F] Control characters
[[:digit:]] - [0-9] Numeric characters
[[:graph:]] - [!-~] Printable and visible characters
[[:lower:]] - [a-z] Lower-case alphabetic characters
[[:print:]] - [ -~] Printable (non-Control) characters
[[:punct:]] - [!-/:-@[-`{-~] Punctuation characters
[[:space:]] - [ \t\v\f] All whitespace chars
[[:upper:]] - [A-Z] Upper-case alphabetic characters
[[:xdigit:]] - [0-9a-fA-F] Hexadecimal digit characters
리터럴 세트 대신 이것들을 사용하는 것은 항상 공간 낭비처럼 보이지만, 코드가 이식 가능하거나 대체 문자 세트를 다루어야하는 경우 (국제 생각), 클래스 이름을 사용하고 싶을 것입니다 대신에.
참고 문헌