2016-08-29 2 views
4

db에서 변수로 일부 sql 쿼리를 읽고 새 줄 문자 (\ n)가 포함되어 있습니다. \ n (줄 바꾸기)를 공백으로 바꾸고 싶습니다. 나는 인터넷에서 제공되는 솔루션을 시도했지만 내가 원하는 것을 성취하지 못했습니다. 여기에 뭘하려 : n (줄 바꿈)을 bash의 공백으로 바꿉니다.

strr="my\nname\nis\nxxxx"; 
nw_strr=`echo $strr | tr '\n' ' '`; 
echo $nw_strr; 

내 원하는 출력은 "내 이름은 XXXX입니다"하지만 내가 무엇을 얻고 것은 "내 \ nname이 \ NIS \ nxxxx"입니다. 나는 인터넷에서 제공되는 다른 솔루션을 시도했지만 운이 없다 :

nw_strr=`echo $strr | sed ':a;N;$!ba;s/\n/ /g'`; 

나는 무엇인가하고 있니? 공백으로 모든 문자열을 \n를 교체

nw_strr="${strr//$'\n'/ }" 

을 :

이 공간의 모든 줄 바꿈을 교체 : 배쉬와

+5

''$ strr' 아무튼 개행 문자를 포함하고 있으면 리터럴 백 슬래시 -N 시퀀스를 포함합니다. 적절한 줄 바꿈을 얻기 위해서는'strr = $ 'my \ nname \ nis \ nxxxx'를 시도하십시오. –

답변

5

기록으로, 우선 들어

nw_strr="${strr//\\n/ }" 
+1

나를 위해 작동하지만 John Kugelman이 위의 주석에서 언급했듯이 실제 줄 바꿈을 포함하는'$ strr '을 사용하여 테스트해야합니다. 예를 들어,'strr = $ 'my \ nname \ nis \ nxxxx' '. – Charley

+0

답변을 업데이트했습니다. – Cyrus

+0

두 번째 작품은 저에게 적합합니다. mysql에서 읽는 동안 모든'\ n'이 문자열로 올 것 같아요. – Prometheus