sed에서 사용하는 정규식에서 다양한 문자 클래스를 결합해야 합니다. [:word:]
와 마이너스 를 일치시켜야 합니다 -
. 어떻게 보입니까? 나의 모든 시도는 해결책을 찾거나 시도하는 데 실패했습니다.
다음 문자열에서 첫 번째 공백까지 모든 항목을 일치시키고 싶습니다.
foo-bar |
baz-xyz-123 |
답변1
POSIX적으로:
sed 's/[^[:alnum:]_-]//g'
현재 로케일에서 영숫자가 아닌 모든 문자 가 제거됩니다 _
.-
$ echo 'foo-bar |' | sed -e 's/[^[:alnum:]_-]//g'
foo-bar
그러나 첫 번째 공백 이전의 모든 내용을 인쇄하려면 다음을 수행하십시오.
sed -e 's/^\([^ ]*\) .*/\1/'
또는 awk
:
awk '{print $1}'