리터럴 공백을 정규식 공백으로 바꾸기

리터럴 공백을 정규식 공백으로 바꾸기

문자열을 바꾸고 싶어요

This is a string

도착하다

This\sis\sa\sstring

\하지만 tr에서 탈출하든 말든 상관없이 작동하지 않습니다.

string="This is a string"
regex=$(echo "$string" | tr " " "\\s")
printf "$regex"

방금 받았어

Thississasstring

답변1

내 생각에 당신의 접근 방식의 가장 큰 문제는 tr음역 입니다.하나의문자 - 따라서 성공적으로 인용하더라도 '\\s'원하는 방식으로 작동하지 않습니다(공백만 대체할 수도 있음 \).

이 경우 외부 유틸리티가 전혀 필요하지 않습니다.

string="This is a string"
echo "${string// /\\s}"
This\sis\sa\sstring

관련 정보