공백으로 바꾸는 방법은 무엇입니까?

공백으로 바꾸는 방법은 무엇입니까?

이유 설명여기. 마침표와 공백(예: .\t또는 )을 마침표와 개행 문자, 공백으로 바꾸고 싶습니다 .\n(예: 예제 문자열을 각각 .\n\t또는 로 변경 .\n\n).

Bash/Linux에서 이 작업을 효율적으로 수행할 수 있습니까?

(나는 기본적인 sed를 알고 있지만 이와 같은 패턴을 처리하기에는 충분하지 않습니다.)

답변1

sed:

sed -E 's/\.([[:space:]]|$)/.\
\1/g'

GNU 사용 sed:

sed -E 's/\.(\s|$)/.\n\1/g'

답변2

GNU에서 그룹화를 사용할 수 있습니다sed

sed -E 's/\.(\s)/.\n\1/g' file

()그룹화는 나중에 일치하는 정규식의 일부를 사용하려고 할 때 사용됩니다.

그룹은 정렬되며 번호로 그룹을 참조할 수 있습니다. 예를 들어 여기에 있습니다.\1

  • -E(이스케이프 를 방지하려면 확장 정규식을 활성화하고)

관련 정보