나는 디렉토리를 사용하여 스크립트를 작성했습니다 ~/deleted
(긴 스크립트입니다). ~/deleted
전체 스크립트를 사용한 후. 사용자가 경로를 ~/.rm.cfg
.
내 파일은 다음과 같이 시작됩니다.
#!/bin/bash
defaultpath=~/deleted
if [ -s ~/.rm.cfg ]
then
defaultpath=$(head -1 ~/.rm.cfg)
fi
스크립트의 모든 항목을 ~/deleted
. $defaultpath
원본 파일을 저장하고 교체할 수 있도록 명령줄에서 이 작업을 수행할 수 있는 방법이 있습니까?
Perl이나 sed를 작동시킬 수 없습니다.
답변1
sed -i 's|~/deleted|"$defaultpath"|g' file.sh
설명하다:
-i
sed
파일이 그 자리에서 수정되도록 지시합니다 .s|~/deleted|"$defaultpath"|g
sed
대체 항목이 발견된 위치에~/deleted
있음을 알려줍니다 ."$defaultpath"
보너스: 세 번째 줄에서 ~/삭제 유지
이를 요청하지는 않았지만 예제 스크립트에서는 ~/deleted
정의의 세 번째 줄을 변경하지 않고 그대로 두는 것이 더 나을 것입니다 defaultpath
. 바꾸다~/deleted
와는 별개로세 번째 줄에서는 다음을 사용합니다.
sed -i -e '3n' -e 's|~/deleted|"$defaultpath"|g' file.sh
그러면 세 번째 줄을 건너뛰었음을 나타내는 명령이 추가됩니다 sed
.3n
sed