2021년 8월 30일 월요일

바쁜 일상 - 셀 스크립팅

100줄 조금 넘는 shell script를 짜느라 이틀을 꼬박 투자하고 있다. 일요일이었던 어제는 노트북 컴퓨터에서 쭈그리고 앉아서 작업을 했더니 목덜미가 뻐근하다. 스크립트 중간에 here document를 써서 R code를 삽입하고, 이를 데이터에 맞추어 실행 순간에 R script로 출력하게 만든 다음 실행하는, 나로서는 꽤 '고급' 테크닉을 구사해 보았다.

80:20의 법칙은 거의 모든 일상 생활에서 적용할 수 있다. 80%의 기능을 구현하도록 스크립트를 만드는데 20%의 시간이 든다면, 나머지 20%를 완성하는 데에는 80%의 시간이 든다. 미처 몰랐던 오류를 고친다거나, 항상 일어나는 예외 상황을 처리하기 위한 것 들이 여기에 해당한다. 

Pandas를 잘 쓴다면 R을 들락거리는 불편함이 없이 원하는 기능을 구현할 수도 있을 것이다. 나의 행동 반경을 제약하는 것은 바로 파이썬을 잘 모른다는 것. 웬만한 것은 Perl, awk, sed, R 등으로 처리하는 수준이다.

파이썬 환경을 그렇게 많이 설치하고, 이것으로 만들어진 유틸리티를 그렇게 자주 쓰면서 정작 파이썬 자체를 이해하고 직접 스크립트를 짜 보려는 노력을 하지 않는 자세는 분명히 개선의 여지가 있는데... 이렇게 게으름을 피다가 결국 '치매 예방을 위한 파이썬 강좌' 같은 것을 듣는 날이 오지 않을까?

Bash의 인수 파싱 방법을 친절하게 설명한 글이 있어서 인용하고자 한다. 앞부분에서는 getopt(s)를 사용하는 비교적 단순한 방법을, 뒷부분에서는 별도의 라이브러리를 쓰지 않고 모든 것을 구현하는 방법, 즉  단순한 flag과 인수를 동반하는 flag을 구별하고 예외 상황은 물론 , 게다가 positional argument를 동시에 처리할 수 있다.

Bash: Argument Parsing

댓글 없음: