리눅스에서 동일한 파일을 수정할 때 조심해야 한다.
input과 output이 동일한 파일일 때.. cat, cp, mv 은 다음 아래가 발생한다.
$ cat > 1
11111
$ cat 1 > 1
cat: 1: input file is output file
$ cp 1 1
cp: `1' and `1' are the same file
$ mv 1 1
mv: `1' and `1' are the same file
sed 의 경우는 에러가 발생하지 않는다. 당연하게도 시스템적으로는 맞지만..
context 적인 오류를 범할 수 있다.
1의 내용을 모두 2로 바꾸고 싶다면, 아래와 같이 쓸 수 있는데, 이 부분은 잘못된 결과를 발생하게 된다.
$ sed -i -e 's/1/2/g' 1 > 1
$ cat 1
(없음)
아래와 같이 sed 명령어의 -i 옵션을 추가하면 바로 수정이 된다.
$ sed -i -e 's/1/2/g' 1
$ cat 1
22222
'unix and linux' 카테고리의 다른 글
Linux split 명령 예제 (0) | 2015.01.28 |
---|---|
[리눅스] 메모리 많이 사용하는 프로세스 찾기 (0) | 2014.12.23 |
[java] cpu를 많이 소비하는 thread 찾기 (0) | 2014.12.02 |
strace grep 또는 파일 저장하기 (0) | 2014.11.28 |
Symbol not found: _SSLv2_client_method (LoadError) 해결 (0) | 2014.11.27 |