파일의 행 업데이트

파일의 행 업데이트

일부 필드가 포함된 파일이 있습니다. 예를 들어,

var One = "fcb";
var Two = "abc";

내가 어떻게 할 수있는업데이트/교체이 줄은 스크립트를 사용하고 있습니까?

나는 다음과 같은 일을 할 수 있기를 원합니다 :

   echo -n "Enter One: "
   read  One
   echo -n "Enter Two: "
   read  Two

   sed -i $One ./file.js
   sed -i $Two ./file.js

그러나 스크립트를 실행하면 다음과 같습니다.

Enter One: fge3
Enter Two: ghj5

보여주다:

sed: -e expression #1, char 1: unknown command: `f'
sed: -e expression #1, char 2: extra characters after command

답변1

sed 명령은 다음과 같습니다

sed -i -e 's/var One =.*/var One = "'$One'";/' -e 's/var Two =.*/var Two = "'$Two'";/' file.js

다음을 추가하도록 편집되었습니다.

함정을 조심하세요...사용자가 foo/bar답변과 같은 불쾌한 문자를 입력하는 경우 :-)

두 번째 편집:

당신이 원하지 않는다면허용하다잘못된 문자가 있으면 중단할 수 있습니다. 예를 들어 다음을 read One추가할 수 있습니다.

if [[ "$One" =~ "/" ]]; then echo bad char / not allowed; exit; fi

sed명령문에 대해 다른 문자(예: a |대신 /)를 선택하고 이를 비활성화 할 수 있습니다 .

그렇지 않으면 영리한 인용을 시도해야 합니다...

One=$(echo "$One" | sed 's/\//\\\//g')

관련 정보