Category: Python, Perl, Shell script..

Transposition Cipher(전위(轉位) 암호화)

‘Cracking Codes with Python’ 이란 책을 보고 있는 중이다. 처음부터 끝까지 다 보고 싶긴 한데, 과연 그럴 수 있을지는 순전히 내 의지에 달려있다. 아무튼.. 초반 70여쪽은 그냥 하루만에 훑어볼 수 있었다. 파이썬에 관한 내용도, 암호화에 관한 내용도 모두 기초였기 때문에 별로 막힐 부분이 없었다. 첫번째 고비는, 그리고 아직도 거기에 계속 머물러 있긴 한데, Transposition Cipher(Chapter

Snapper 가 생성한 btrfs subvolume 순차 삭제 (Recursive Deletion)

예를 들어, 아래와 같이 Btrfs Subvolume 이 있다고 가정해본다. 눈에 확 들어오지는 않기 때문에, 위 상황을 아래와 같이 표현해 보도록 한다. @snapshot 이라는 서브볼륨이 있고, 그 아래에 이름이 1,2,3… 인 ‘디렉토리‘들이 있으며, 각각 디렉토리안에 snapshot 으로 명명된 서브볼륨들이 존재한다.toplevel 271(@snapshots) 하에 숫자로된 디렉토리/snapshot 들이 있음을 볼 수 있다. (눈에 잘 안들어와서 그렇지.) 지금 나는, 저

Perl One-liner 를 본래 스크립트로 바꾸려면?

이 모든 꽃삽질은, Perl 에 대한 지식이 부족한 상태에서 다소 무리하게 학습(?)을 강행한데서 비롯됐다.그 와중에, 다음 명령이 이 연구(?)의 시발점이 되었다. 이 명령은, 원하는 문구 바로 다음 줄 내용을 찾게 해준다고 하는데.. 명령이 이해가 되질 않았다. 명령이 이해가 안된다기 보다는, 문법을 몰랐기에, 결과가 어떻게 도출되는지가 그려지질 않았다. if 가 앞 뒤로 나오고, 앞 명령과 뒷

perl -C 옵션

우분투 18.04, perl 5.26.1 에서, 다음 명령을 내리면 엉뚱한 결과를 받게 된다. 원했던 값이 아닌, 문자라 할 수도 없는 쓰레기값이 출력되었는데.. 이를 바로 잡기 위해서는 -C 를 붙여줘야 한다. -C 는 Unicode 와 연관이 된 명령이라고 하는데, 자세한 사항은 perldoc perlrun 에서 알아볼 수는 있으나.. 봐도 잘 모르겠고, 그냥 이렇게 쓰면 된다는 사실만 기억하자. 헌데,

Python: Variable Interpolation

Variable Interpolation 을, 우리말로 뭐라 하려나?Interpolation 은 삽입하다, 보충하다로 풀이되고, 수학에서는 ‘보간법’이라는 용어를 쓰고 있다.일본 용어로는 文字列補間이라고 하는 모양인데.. 아주 짧게 인터넷 검색을 해봤지만, 적절한 우리말을 찾을 수 없었다. 내가 이런 류의 국내서적을 잘 보지 않아 왔기에 더더욱 감이 잡히지 않을 수도 있고, 애초에 번역이 안되었을 수도 있다. 제타위키에 해당 항목이 있지만, 용어가 번역되어 있지는

python : 파일에 중복이 있는 경우, 정렬 유지하고 삭제하기.

구글에서, ‘Python remove duplicates’ 로 검색하면, 몇몇 글들을 찾을 수 있는데, 대부분 동일한 소스코드를 공유하고 있었다. 이것과 동일한 코드가 Python Cookbook(O’REILLY) 에도 기재돼 있다. 저걸 쓰면, 정렬 순서는 그대로 유지하면서 중복된 줄만 지워준다. 먼저 나온 게 살아있고, 나중 나온 건 삭제된다. 그런데, 여기엔 작은(?) 문제가 몇개 있다. 일부러 넣어놓은 빈 줄이 모두 삭제된다. (맨 첫

Regex : Assert/Assertion 의 의미는?

2015.12.30 에, 이글루스에 이에 관련한 내용을 썼다.다음은 원문이다. Regex 에서 종종 나오는 표현이 ‘Assert’ 다.이걸 찾아봐도 확실하게 ‘뭐다’라고 나온 것은 볼 수 없었다. 그런데..Regular Expression Cookbook 을 보다보니, 대충 짐작은 가는 것 같다.실마리가 된 것은 Zero Width Assertion 이라는 표현이다. 먼저, Assert 가 갖는 기본적인 의미는 ‘(강력히) 주장하다’이다. Regex 에선 이런 의미를 부여해봤자 잘 들어맞질

sed 로 처리하기 어려운 경우, perl 로는 손쉽게 가능.

shell script 를 사용해서, 완벽(효율면은 아니고 효과에서)하게 처리했다고 생각했는데.. 엉뚱한 쪽에서 오류가 발생했다. m3u 파일을 편집/수정하는 스크립트를 만들었다.m3u 를 사용하다보면, 실제로는 이미 지워진 음원이 m3u 안에 그대로 남아있는 경우가 종종 생긴다. 이런 ‘유령’이 몇몇 남아있다고 해도 mp3 재생기에서 오류를 내지는 않지만, 만약 m3u 내에 있는 목록 모두가 실제로 존재하지 않을 경우엔 결국은 에러가 표시된다. 아무튼

perl one-liner, 선택사항 정리.

sed 문제로 고민하다가, 결국 perl one-liner 를 선택하게 됐다. 단기간에 속성 흡입(?)을 한 터라, 금방 잊어버릴 듯도 하지만.. 자세한 설명은 perldoc perlrun 에서 볼 수 있다. perldoc 은 우분투에선 기본 설치가 되어 있지 않은데, apt install perl-doc 으로 가능하다. 간단하게 정리해본다. One liner 는 이런 형식이다. 순서대로 설명한다. -p : 다음과 같은 코드를 Perl 에서