어둠의 경로로 가끔 뭔가를 구해서 볼 때, gif 로 되어 있는 경우가 있습니다. 기본적으로 보기가 불편해서 jpg 로 바꿔서 볼려고 할 때 일일이 (수 백장이나 되니) 바꾸기 힘들때 편하게 콘솔에서 바꾸는 방법이 있습니다. 

$ find . -type f -name '*.gif' | while read filename; do echo "converting ${filename}" ; convert "${filename}" "`echo "${filename}" | sed -e 's/\.gif$/\.jpg/'`"; done 

 
참고로 imagemagick 은 설치 되어 있어야 합니다.  
 
제가 사용하고 있는 만화책 Viewer 는 JJComics 입니다. 일단 무료 이고요. 여러 코믹스 뷰어를 설치해 봤지만 이 어플만한 녀석이 없더군요.

그런데 TIF 파일을 못 읽는 안타까움이 있습니다. 하지만 Linux 사용자라면 편하게 이미지 파일 형식을 변환할 수 있는 툴이 들어 있습니다. convert 라는 툴인데요. Command Line 에서 편하게 파일을 변경할 수가 있습니다.

TIF -> GIF 로 바꿔서 다시 압축을 해주면 JJComics 에서 볼 수가 있습니다.

$ find . -type f -name '*.TIF' | while read filename; do echo "converting ${filename}"; convert "${filename}" "`echo "${filename}" | sed -e 's/\.TIF$/\.GIF/'`"; done


조금 설명을 부연하자면

1. 현재 디렉토리 ( . ) 에서 확장자가 TIF 인 파일을 찾습니다.

2. 그 각각을 filename 으로 인자로 받아들입니다.
   - while read filename 으로 가능합니다.

3.  간단한 변환 메시지를 출력하고
  -  converting ${filename} 을 통해서 그게 가능합니다

4. 실제로 convert 명령을 이용해서 변환을 가해 줍니다.
  - convert 001.TIF 001.GIF 와 같은 방식으로 변환이 가능합니다.
  - convert "${filename} 은 원래 파일 이름 (001.TIF)
  - "`echo "${filename}" | sed -e 's/\.TIF$/\.GIF/'`" 은 바껴질 파일 (001.GIF) 를 의미합니다.



Emacs 상에서 파일의 인코딩을 (주로 Euc-kr 과 Utf-8 사이의 변경) 변경하는 방법에 관한 이야기 입니다. 

언젠가는 정리해야지 마음만 먹고 있다가 결국 정리하게 되는군요.

File Dired 모드 (C-xC-f 를 누르고 미니버퍼에 디렉토리에 보이는 상태에서 C-d 누르면 됨) 에서 다음에 불러들일 커맨드를 그 파일이 저장되어 있는 인코딩으로 지정해준다. (만약 파일이 euc-kr 로 저장되어 있다면)
 

 C-x RET c <RET> euc-kr 



이렇게 입력하고 다음에 불러들일 파일을 <RET> 을 입력해서 불러들이면 위에 지정한 인코딩(Euc-kr) 으로 파일을 불러들입니다. 

 

        C-x RET f <RET> utf-8 


이렇게 입력하면 지금 불려져 있는 파일을 인코딩을 변경하여 저장하라는 명령입니다. 현재 euc-kr 로 불러들인 파일을 utf-8 으로 저장하겠군요.  


 
Perl 을 모르는 상황에서 Emacs 만큼 강력한 정규표현식 도구가 따로 없습니다. (vim 은 제외 이제 저는 vim 을 마음속에서도 지웠습니다 ㅋㅋ) 

다음과 같은 상황에서 어떻게 이맥스를 이용해서 문자열을 치환하는  지에 관한 예제 입니다. 


1
2
3
4
...

5053
5054  <-- 이게 앞으로 삭제될 예정
5055
..

100000 


이런 상황은 거의 없을 듯 하지만 수동으로 인덱스를 맞춰줄려면 보통의 인내심으로 되는 것이 아닐 것입니다. 이맥스(Emacs) 에서는 정말 간단하게 작업할 수가 있습니다.

5055 ~ 부터 100000 까지 영역(Region) 을 설정해 줍니다. 그리고 



 M-x replace-regexp
  Replace regexp: ^[0-9]+
  Replace regexp with \,(1- \#&)

이 명령을 실행하면 나머지 숫자까지 아름답게 맞춰집니다. 간단히 부연 설명 하자면 \, <-- 다음 나오는 함수를 실행하라는 명령이고요. 1- 는 숫자값을 한개씩 빼라는 이야깁니다. (숫자값을 한개씩 더하는 명령은 1+ 입니다) \#& 는 \& 와 # 을 합친 것 인데요. \& 는 찾은 정규표현식 전체를 의미하고 # 은 찾은 문자열을 숫자로 변환하라는 뜻입니다. 


 

+ Recent posts