Linux
다양한 하위 폴더에 이름이 여러 개인 파일이 있습니다 .전반적으로
DSY_OS_Release=`lsb_release --short --id |sed 's/ //g'`
로 교체해야합니다
DSY_OS_Release="RedHatEnterpriseWorkstation"
명령줄을 사용하여 이를 어떻게 달성할 수 있습니까?
중복된 질문처럼 들리지만 다소 복잡한 문자열에 적합한 답변을 찾을 수 없습니다.
답변1
전체 줄을 일치시킬 필요가 없다면 다음을 사용하십시오.
sed 's/^DSY_OS_Release=.*/DSY_OS_Release="RedHatEnterpriseWorkstation"/'
구현 에 따라 sed
를 사용할 수도 sed -i '...' file
있고, 새 파일로 리디렉션한 후 원본 파일을 바꿔야 할 수도 있습니다.
파일 세트에서 실행하는 방법은 다음과 같습니다. 모든 파일이 특정 패턴과 일치하는 경우(예: *.config
GNU 가정 sed
):
find /some/path -type f -name '*.config' \
-exec sed -i '...as above...' {} \;