이유 설명여기. 마침표와 공백(예: .\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
(
이스케이프 를 방지하려면 확장 정규식을 활성화하고)