내 파일을 바꾸려면 다음 명령을 사용하고 있습니다 yyyymmdd
.YYYYMMDDHH24MISS
sed -e 's/\('yyyymmdd'\)/\('YYYYMMDDHH24MISS'\)/g' filename
more
PuTTY에서 명령을 실행하면 대체 값이 포함된 파일이 표시되지만 해당 파일인지 아닌지는 반영되지 않습니다 .
사용해 보았지만 -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