2014-06-05 2 views
0

내 코드에서 Status의 모든 인스턴스를 status으로 변경하고 싶습니다. Status 등, Current_StatusCheck_Status_After_Write 같은 문자열을 같은 줄에일치하는 다른 문자열을 변경하지 않고 전체 단어를 바꾸는 방법은 무엇입니까?

입니다

그러나 나는 단지 변수 이름을 교체하고 다른 변수 또는 일치하는 주석 문자열 경우의 정의를 변경하지 할 몇 가지 라인이있다 가능한.

grep -nwrs Status ./Status.txt | xargs sed -i 's/i\<Status\>/status/g' 

이 반환 :

내가 사용하려고 나오지 : 더 입력

내가 사용하도록 단순화 시도 파일 없습니다 :

grep -rl Status ./Status.txt | xargs sed -i 's/i\<Status\>/status/g' 

을하지만 나는대로 작동하지 원했어.

내가 이것을 복잡하게 작성합니까? 누구든지 솔루션을 제공 할 수 있습니까?

제쳐두고, 나는이 작업을 약간 실패한 시도가 있었고 문자열 교체에 대해 약간 편집 적이었습니다. 스크립트를 작성하지 않고 교체가 발생하기 전에 확인을 요청하는 방법이 있습니까?

+0

왜이'sed 's/Status/status/g'파일'을 사용하지 않으시겠습니까? –

+0

네, 너무 복잡합니다. 단어 경계를 사용하십시오. 'sed 's/\ bStatus \ b/status/g'파일 '. 파일 내부를 변경하려면'-i' 옵션을 사용하십시오. –

+0

jaypal, 그 일을 응원. – user3712142

답변

0

당신은하지 앞이나 뒤에 아무것도

^Status$ 

만 단어의 상태에 맞게 패턴을 사용할 수 있습니까?

+0

시작 부분에 공백없이'Status ok' 문구에서 실패합니다. – smttsp

+0

달러 기호는 상태가 행의 끝 부분에만 일치하는지 확인해야합니다. 상태는 시작과 끝이 일치하며 끝 부분에는 아무 것도 허용되지 않습니다. 그게 효과가 없다면 저는 진정으로 혼란스러워합니다. –

+0

내가 잘못했을 수도 있습니다. – smttsp

관련 문제