sed를 사용하여 정규 표현식을 사용하여 파일의 키를 바꾸는 방법은 무엇입니까?

sed를 사용하여 정규 표현식을 사용하여 파일의 키를 바꾸는 방법은 무엇입니까?

키가 다음과 같이 파일에 있다고 가정하고 키를 대체하기 위해 파일을 수정하고 싶습니다.

42NM
52NM
23NO
XNNM

나는 "ok"라는 단어 대신에 NM을 사용하고 싶습니다.

 1 #!bin/bash/
 2 
 3 if [ -f KeyFile]
 4 then
 5         sed 's/[0-9][0-9]NM/Okay/g' KeyFile
 6 else
 7         echo "File does not exist or cannot be found."
 8 fi
 9 
10 exit 0

나는 다음 명령을 실행했습니다.

chmod a+x FindKeys

그런 다음 스크립트를 실행하려고 하면 다음과 같은 결과가 나타납니다.

-bash-3.00$ ./FindKeys
-bash: ./FindKeys: bin/bash/: bad interpreter: No such file or directory

두 가지 문제가 있는 것 같습니다. 하나는 스크립트 파일이 올바르게 실행되지 않는 것이고, 두 번째는 명령이 sed작동하지 않는다는 것입니다.

답변1

1호선: 해시뱅 라인이 올바르지 않습니다. 다음을 사용하세요.

#!/bin/bash

3호선: 유틸리티 참고 test(끝 앞에 공백이 필요함 ]):

if [ -f KeyFile ]

5호선sed: 명령 에서 -i활성화된 내부 편집을 사용합니다 sed. 그렇지 않으면 편집 내용이 단순히 표준 출력으로 인쇄됩니다.

sed -i 's/[0-9][0-9]NM/Okay/g' KeyFile

관련 정보