[완료] 한 파일에서 입력받고 동일한 파일로 출력시 문제
글쓴이: lifehacker / 작성시간: 목, 2008/09/25 - 2:22오전
안녕하세요
file1에 다음 내용이 저장되어 있습니다
abcdefg 1234567
그런데 다음 명령을 내리면tr ' ' '\012' < file1 > file1
file1에
abcdefg
1234566
이 저장돼야 할 것 같은데
file1이 빈파일이 되는 원리가 무엇인지 알고 싶습니다
이렇게 새파일에 결과를 저장하면 tr ' ' '\012' < file1 > file2
위의 원하는 결과가 나오는데
왜 동일한 파일로 출력하는 것은 안될까요?
미리 감사드립니다
Forums:
첫번째 경우에는,
첫번째 경우에는, stdin/stdout 리다이렉션을 설정하는 게 실제로 stdin 에서 읽는 것보다 먼저 일어나구요, stdout 을 파일로 리다이렉션을 하면 그 파일이 지워지게 됩니다.
따라서 file1을 읽기 전에 file1의 내용이 먼저 지워져 버려서 읽지도 못하게 되죠.
두번째 경우처럼 file2 이런 식으로 다른 파일로 리다이렉션을 하시면, stdout을 리다이렉션하는 과정에서 file1의 내용은 그대로 남아있으니까 아무 문제가 없습니다.
----
Let's shut up and code.
----
Let's shut up and code.
가려운데를
가려운데를 긁어주셔서 감사합니다 ^^
댓글 달기