정규식 구분 기호로 파일 줄 분할

정규식 구분 기호로 파일 줄 분할

\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

\WPerl(표현식이 파생된 언어)을 사용하여 모든 일치 항목을 개행 문자로 바꿉니다 \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

\WPCRE를 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:]줄바꿈 포함 .

관련 정보