2012-07-16 4 views
0

내가 가지고 RoR에 프로젝트의 설정/application.rb 파일에서 다음 행 :RoR 구성 파일의 텍스트를 변경하는 방법은 무엇입니까?

[other lines that i omitted here] 
config.app_type= :rewards # :classic/:rewards 
config.app_prefix= '' # '$ ' for :classic/'' for :rewards 
config.app_suffix= ' pts' # ' MXN', ' USD' for :classic/' pts' for :rewards 

나는이에 나오지도를 사용하여 스크립트로 텍스트를 변경하려면 :

[other lines that i omitted here] 
config.app_type= :classiC# :classic/:rewards 
config.app_prefix= '$ ' # '$ ' for :classic/'' for :rewards 
config.app_suffix= ' USD' # ' MXN', ' USD' for :classic/' pts' for :rewards 

방법 내가 sed로 할 수 있을까?, 아직 정규 표현식과 sed로 아직 얻지 못한다 ... : S

답변

1

이것은 작동 할 것이다. sed 명령에 파일을 사용하면 이스케이프 인용 부호를 사용하지 않아도됩니다.

script.sed

내용 :

s/^\(*config\.app_type= *:\)rewards/\1classic/ 
s/^\(*config\.app_prefix= *\)''/\1'$ '/ 
s/^\(*config\.app_suffix= *\)' pts'/\1' USD'/ 

실행이 좋아 :

[other lines that i omitted here] 
config.app_type= :classiC# :classic/:rewards 
config.app_prefix= '' # '$ ' for :classic/'' for :rewards 
config.app_suffix= ' pts' # ' MXN', ' USD' for :classic/' pts' for :rewards 
+0

흠 .... 내 특별한 경우를 위해, 나는 만 사용할 수 있습니다 다음과 같은 출력으로

sed -f script.sed infile 

사용자 정의 bash 파일 ... 이스케이프 인용 부호 사용은 어떻습니까? –

+0

@ianenri : * custom bash 파일 *이란 무엇을 의미합니까? 명령 줄에서 큰 따옴표를 사용하여 직접 실행할 수는 있지만 변수 보간에주의해야합니다 (예 : 여기서는 없지만보다 복잡한 명령에서) :'sed -e "s/^ \ (* config \ .app_type = * : \) rewards/\ 1classic /; ... "infile" – Birei

관련 문제