![복잡한 행 앞이나 뒤에 복잡한 행 삽입](https://linux55.com/image/85655/%EB%B3%B5%EC%9E%A1%ED%95%9C%20%ED%96%89%20%EC%95%9E%EC%9D%B4%EB%82%98%20%EB%92%A4%EC%97%90%20%EB%B3%B5%EC%9E%A1%ED%95%9C%20%ED%96%89%20%EC%82%BD%EC%9E%85.png)
복잡한 텍스트가 포함된 파일이 있습니다.
print("ERROR: passwords don't match")
password = hash_func(password.encode("UTF-8")).hexdigest()
사이에 이 텍스트를 삽입해야 합니다.
with open('/etc/openvpn/clients/%s/login.txt' % username, 'w') as login_log:
login_log.write('%s\n%s\n' % (username, password))
그럼 이렇게 되겠죠
else:
print("ERROR: passwords don't match")
with open('/etc/openvpn/clients/%s/login.txt' % username, 'w') as login_log:
login_log.write('%s\n%s\n' % (username, password))
password = hash_func(password.encode("UTF-8")).hexdigest()
답변1
cat > user.inp << EOL
with open('/etc/openvpn/clients/%s/login.txt' % username, 'w') as login_log:
login_log.write('%s\n%s\n' % (username, password))
EOL
sed -i '/ERROR: passwords/r user.inp' /root/add.py
fi
답변2
당신은 이것을 할 수 있습니다 vi
:
vi -c '/print("ERROR: passwords don'\''t match")/a\
with open('\''/etc/openvpn/clients/%s/login.txt'\'' % username, '\''w'\'') as login_log:
login_log.write('\''%s\n%s\n'\'' % (username, password))
.' myfile
(이것은 모두 명령입니다.)
이렇게 하면 파일을 열고 vi
수정할 수 있지만 파일은 저장되지 않습니다. 원하는 대로 되었는지 확인할 수 있습니다.
종료하고 변경 사항을 저장하려면 을 입력 :x
하고 Enter를 누르십시오. 종료하고 변경 사항을 취소하려면 를 입력 :q!
하고 Enter를 누르십시오.
문제가 발생하면 <Esc>
한두 번 누른 후 다시 시도하세요 :q!
.
스크립트 편집기에 대한 참조는 매우 빠르게 매우 나빠질 수 있습니다. 파일을 대화식으로 편집하기 위해 파일을 사용하고 여는 방법을 배우는 vi
것이 위의 명령에서 참조를 알아내는 것보다 훨씬 쉽습니다.
훨씬 쉽습니다. 한 파일에 이미 줄이 있고 다른 파일의 특정 위치에 삽입하려는 경우 몇 가지를 조정할 수 있습니다.ex
내가 작성한 코드그냥 해.