sed 명령을 사용한 후 파일을 저장하십시오.

sed 명령을 사용한 후 파일을 저장하십시오.

내 파일을 바꾸려면 다음 명령을 사용하고 있습니다 yyyymmdd.YYYYMMDDHH24MISS

sed -e 's/\('yyyymmdd'\)/\('YYYYMMDDHH24MISS'\)/g' filename

morePuTTY에서 명령을 실행하면 대체 값이 포함된 파일이 표시되지만 해당 파일인지 아닌지는 반영되지 않습니다 .

사용해 보았지만 -i다음과 같이 표시됩니다.

sed: illegal option -- i

누구든지 여러 파일에서 특정 코드를 교체하고 저장하는 방법을 제안할 수 있나요?

답변1

이 시도:

sed 's/yyyymmdd/YYYYMMDDHH24MISS/g' filename > changed.txt

또는 동일한 파일 이름을 유지하십시오.

sed 's/yyyymmdd/YYYYMMDDHH24MISS/g' filename > changed.txt && mv changed.txt filename

답변2

귀하의 sed명령은 결과를 표준 출력으로만 보냅니다. 후속 명령에서 이를 리디렉션해야 합니다(예를 들어 동일한 명령이 아닌 sed 'sedcommand' file > file파일이 처리되기 전에 삭제되므로).

ed대신 다음을 사용하여 명령을 파이프할 수도 있습니다 sed.

for file in $filelist ; do
  echo -e '%s/yyyymmdd/YYYYMMDDHH24MISS/g\nw' | ed $file
done

각 줄( )을 바꾼 %다음 구분 줄 바꿈( \n) 뒤에 수정된 파일을 해당 위치( w)에 씁니다.

답변3

명령에서 -i옵션을 사용하십시오 sed.

sed -ie 's/\('yyyymmdd'\)/\('YYYYMMDDHH24MISS'\)/g' filename

관련 정보