다음과 같은 기본 Python 스크립트가 있습니다.
my_name = 'Zed'
my_age = 35
my_height = 74
my_weight = 180
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'
print "let's talk about %s" % my_name
print "he's %d inches tall" % my_height
print "he's %d pounds heavy" % my_weight
print "actually, that's not too heavy"
print "he's got %s eyes and %s hair" % (my_eyes, my_hair)
print "his teeth are usually %s depending on the coffee" % my_teeth
print "if I add %d, %d, and %d, I'd get %d" %(my_age, my_height, my_weight, my_age + my_height + my_weight)
my_
이 파일에서 ""의 모든 인스턴스를 삭제하고 싶어서 sed
다음 명령을 실행했습니다.
sed 's/my_//' pythonscript.py > altered_mypythonscript.py
출력에는 my_
여기 스크립트 끝에 있는 줄을 제외하고 ""의 모든 인스턴스가 제거되었습니다.
print "if I add %d, %d, and %d, I'd get %d" %(my_age, my_height, my_weight, my_age + my_height + my_weight)
sed
괄호 안의 단어가 원하는 대로 바뀌지 않는 이유는 무엇입니까 ? 이 문제를 어떻게 해결할 수 있습니까? 내 인터넷 검색 능력이 나에게 실패했을 수도 있지만 sed
대체 명령이 괄호의 영향을 받는다는 내용은 읽지 않았습니다 . 그러나 나는 틀릴 수 있습니다.
답변1
이는 마지막 줄과 관련이 없으며 오히려 이것이 대체된다는 사실입니다.
's/my_//'
행의 첫 번째 발생만 변경됩니다.
다음으로 변경하세요.
's/my_//g'
print()
()를 포함하여 인쇄 기능부터 시작하는 것도 고려할 것입니다 .
from __future__ import print_function
스크립트 상단에 있거나 더 일반적으로 그러한 스크립트에 Python3을 사용하도록 전환합니다.