나는 이전에 파일을 그 자리에서 변경할 것으로 예상하면서 이 작업을 수행한 적이 $ tr '\t' ',' <file.txt >file.txt
있으며 분명히 리디렉션은 >
파일을 읽기 전에 파일을 자릅니다.<
파일을 자르거나 삭제하지 않고 어떻게 파일을 변경할 수 있나요?
답변1
당신은 할 수 없습니다. 리디렉션 >
연산자~ 할 것이다파이프라인의 일부로 새로운 빈 파일을 만듭니다. 이 작업을 수행하는 도구(예: sed --in-place
)는 새 파일을 생성하고 파일에 쓴 다음 새 파일을 이전 파일 위치로 이동하는 것 같습니다 .
$ ls -i file; sed --in-place 's/foo/bar/' file; ls -i file
266110 file
262180 file