\W
영숫자가 아닌 정규식을 사용하여 입력 파일의 각 줄을 분할 하고 출력 파일의 모든 분할 청크를 다음과 같이 인쇄하고 싶습니다 .
입력 파일:
www.wifi.in.ua
YI-HondBrychka
결과물 파일:
www
wifi
in
ua
YI
HondBrynchka
답변1
-o
일치하는 문자열만 인쇄하려면 플래그를 사용해 보세요 .
$ cat <<HEREDOC | grep -Po '\w+'
www.wifi.in.ua
YI-HondBrychka
HEREDOC
www
wifi
in
ua
YI
HondBrychka
답변2
\W
Perl(표현식이 파생된 언어)을 사용하여 모든 일치 항목을 개행 문자로 바꿉니다 \W
.
$ perl -pe '$_ =~ s/\W/\n/g' <file
www
wifi
in
ua
YI
HondBrychka
또는 질문의 실제 표현과 더 일치합니다.
$ perl -pe '$_ = join("\n", split(/\W/)) . "\n"' <file
www
wifi
in
ua
YI
HondBrychka
\W
PCRE를 ERE로 표현 [^[:alnum:]]
하고 GNU를 사용하십시오 awk
.
awk -v RS='[^[:alnum:]]' 1 file
입력 레코드 구분 기호를 임의의 문자로 설정하는 약어 1
입니다 . 그러면 레코드가 별도의 줄에 인쇄됩니다.'{ print }'
\W
또는 GNU를 사용하십시오 sed
:
sed 's/[^[:alnum:]]/\n/g' file
그걸로 tr
,
$ tr -c '[:alnum:]' '\n' <file
www
wifi
in
ua
YI
HondBrychka
-c
모든 문자를 대체하는 곳아니요[:alnum:]
줄바꿈 포함 .