2012-02-14 3 views
2

sed 스크립트 파일을 여러 개 작성해야합니다. 나는 스크립트 내에서 확장 정규 표현식을 사용하는 방법을 찾지 못하는 것 같습니다. 이것이 가능한가? 스크립트가 내 통제하에 있지 않은 외부 환경에서 실행되어야하기 때문에 옵션 플래그를 사용할 수 없습니다. (먼저 chmod a+x을, ./script.sed)와 같이 스크립트를 실행하려면 관리자에게 다음sed 스크립트 확장 정규식

#!/bin/sed -rf 
# script goes here 

및 그래서 오두막 라인에 사용됩니다 : 당신은 스크립트 오두막에 플래그를 지정 시도 할 수

+0

'sed'해야합니까? 또한 http://unix.stackexchange.com/ – Cameron

+0

에서 더 나은 응답을 얻을 수도 있습니다. sed 스크립트 내의 유일한 프로그램 가능한 스위치 기능은'-n' 스위치라고 생각합니다.이 스위치는 스크립트는'# n'을 시작합니다. – potong

답변

3

는 말 올바른 통역관을 찾았습니다.

사용자 환경에 맞는 경로로 /bin/sed을 사용해야 할 수 있습니다. 불행하게도이 경우 /usr/bin/env sed -r을 사용할 수 없습니다 (추가 -r이 문제입니다).

+0

-rf .. 어쩌면? – vmpstr

+0

네가 맞아, 고마워! –

1

나는 당신의 질문에 대한 답변이 GNU sed 경우 "아니오", 하지만이, 그때는 아마 정말하지 필요성을 확장 된 정규 표현식을 때문에 GNU sed의 구현 기본 정규 표현식의 생각 실제 POSIX BRE가 지원하지 않는 ERE 기능을 실제로 지원합니다. 틀림없이, 그 결과는 믿을 수 없을 정도로 고통 스럽지만 역 슬래시가 많습니다. — ERE의 s/(a|b+|cd?)/e/g은 BRE의 s/\(a\|b\+\|cd\?\)/e/g —이되지만 작동합니다.