2014-10-10 2 views
1

나는 sed를 처음 사용하므로 탭과 일치하는 방법을 알고 싶습니다. 이 텍스트가 있습니다 -sed와 일치하는 탭

line one { 
      line two { 
        filler { 
          text value 
        } 
        line four 
      } 
    } 

탭이없는 경우 위의 텍스트와 일치하는 표현식을 사용하고 있습니다.

sed -i -e "/ line two {/,/}/s/text .*\$/text new/" $file 

그러나 "줄 2"앞에 탭이 있고 "필러"앞에 3 개의 탭이 있으며 "텍스트 값"앞에 4 개의 탭이 있습니다.

어떤 도움이 필요합니까?

답변

3

sed에서 탭은 \t으로 표시됩니다. 그래서, 대체 성공적으로 다음과 같이 될 것이다 :

sed -i -e "/\tline two {/,/}/s/text .*\$/text new/" "$file" 

필요한 유일한 변화는 /\tline two {// line two {/를 교체했다. /s/text .*\$/text new/ 명령은 text 앞에있는 공백과 일치하지 않으므로 변경하지 않아도됩니다. text을 다음 탭이있을 수 있습니다 경우 사용하면 공백 문자가 나타납니다하는지 모르는 경우에는 표현 [[:space:]] 공백의 모든 종류에 맞게 사용할 수 있습니다

sed -i -e "/\tline two {/,/}/s/text[[:space:]].*\$/text new/" "$file" 

.

관련 문제