2017-01-17 2 views
0

sed를 사용하여 폴더의 모든 shabang을 (안드로이드의 실행 프로그램 용) 재귀 적으로 바꾸려고합니다.sed와 재귀 적으로 shabang 바꾸기

  • 대체 표현

    나쁜 옵션

  • : 내가 "일반 워드"를 시도했지만 내가 시도 shabang..Everything 함께 노력하고있을 때 두통이 될 때 명령이 좋은 작품, 나는 오류가 발생했습니다

    타의 추종을 불허하는 '/'

  • 이벤트는

, 나는이에 새로 온 사람과 아마 초심자 실수 때문에 시간을 찾을 수 없습니다

grep -rl "env python" tsst |xargs sed -i "s/\#!/usr/bin/env python/\#!/system/python2.7.9//g" 

가 나는 또한 변수를 사용하여 시도 : 조립식 코드입니다 (TSST 내 폴더) (. 코드의 첫 번째 부분 난 그냥 문제가 어디에 복사 .. 좋은)

sed -i "s/$old/$new/g" 

sed -i 's/"$old"/"$new"/g' 

sed -i "s/'\#!\/usr\/bin\/env python'/'\#!\/system\/python2.7.9\/'/g" 

무엇 내가 잘못 했니?

+0

'xargs'대신 '찾기'를 사용했는지, 2) 단일 파일에서이 대체, 3) 더 간단한 대체를 시도 했습니까? – Beta

답변

1

이 정규 표현식을 사용해보십시오. 정규식 구분 기호로 일치시킬 실제 문자와 /을 함께 사용할 수 없습니다. 임의의 문자를 |과 같이 정규식 구분 기호로 사용할 수 있습니다. 단, 3 문자 모두에서 / 대신 사용할 수 있습니다.

$ echo '#!/usr/bin/env python' | sed 's|#!/usr/bin/env python|#!/system/python2.7.9|g' 
#!/system/python2.7.9 
+0

고마워요 !! 괜찮아요. .. 그게 어리석은 오류라는 걸 알았어요.하지만 이것에 대해서는 생각하지 않았습니다. 왜 지금 작동하지 않는지 알고 있습니다. – user7427983

관련 문제