입력 파일의 경로를 바꾸려고합니다.
#include "../../../Plumed.h" #### this is old patch in input
#include "/usr/local/include/Plumed.h #### this should be the new path
이전에 답변 한 질문을 본 후 ( https://stackoverflow.com/questions/11245144/replace-whole-line-tained-a-string-using-sed ).
나는 이것을 시도했다.
sed -i '/../../../Plumed.h/c\/usr/local/include/Plumed.h' ../dist0.xvg
perl -i -pe 's/../../../Plumed.h/usr/local/include/Plumed.h/g' ../dist0.xvg
sed / perl이 혼란스러워지고 있다고 생각하지만 어떻게 극복해야할지 모르겠습니다. 도움을 주시면 감사하겠습니다.
/
에서 구분자로 사용 sed
하는 경우 솔루션은 다음과 같습니다.
sed -i 's/..\/..\/..\/Plumed.h/\/usr\/local\/include\/Plumed.h/g' file
또는와 다른 구분자를 사용할 수 있습니다. /
예를 들면 :
다음과 같습니다.
sed -i 's:../../../Plumed.h:/usr/local/include/Plumed.h:g' file
다른 방법 awk
:
awk '{ gsub("../../../Plumed.h","/usr/local/include/Plumed.h"); print $0}' file
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다