[리눅스] cat 사용법


cat은 연결한다는 뜻의 영단어 concatenate의 약자입니다. cat은 인자로 받은 문자열이나 파일을 다 이어붙여서 하나로 만들어서 출력합니다. 예를 들어


cat 파일1 파일2 파일3


이라고 쓰면 파일1, 파일2, 파일3의 내용이 순서대로 연결되어 화면에 출력됩니다.


이 성질을 사용해서 cat으로 파일의 내용을 볼 수 있습니다.


cat 파일1


이라고 하면 딱히 연결시킬 다른 파일이 없기 때문에 파일1의 내용만 화면에 출력됩니다.


그냥 cat이라고만 치면 키보드에서 입력을 받아서 화면에 출력합니다. 이것을 리다이렉션(>)을 사용해서 파일에 바로 저장할 수 있습니다. 입력을 마칠 때에는 새 줄의 맨 처음에서 ctrl+d를 누르시면 됩니다. 예를 들면 다음과 같습니다.


cat > 여기에저장.txt


cat에는 많은 옵션이 있습니다. 그 중 유용한 것 두 가지를 소개합니다.


-ve


-ve는 각 줄의 맽 끝을 $ 기호로 표시해주는 옵션입니다. 줄 맨 끝에 공백이 있을 경우 유용합니다.


-n


-n은 줄마다 1, 2, 3 등의 줄번호를 붙여서 출력하는 옵션입니다.


[파이썬] glob - 디렉토리 내 특정 확장자 파일 모두 출력하기


디렉토리 안에 있는 파일을 다룰 때에는 os와 os.path를 함께 사용해도 되고 glob을 사용해도 됩니다. 특정 확장자의 파일만 가져오기 위해 glob을 사용해보도록 하겠습니다. 경로를 합치기 위해 os.path도 사용했습니다.


import glob

import os.path


myPath = '/내가/원하는/디렉토리/경로'

myExt = '*.jpg' # 찾고 싶은 확장자


for a in glob.glob(os.path.join(myPath, myExt)):

    print(a)


이렇게 하면 myPath 안에 있는 jpg 확장자 파일들이 화면에 출력됩니다.

[파이썬] os와 os.path - 디렉토리 내 파일 전부 출력하기


특정 디렉토리 안에 있는 파일을 배열로 받아와야 할 때가 종종 있습니다. os와 os.path를 함께 사용해도 되고 glob을 사용해도 됩니다. 여기서는 os와 os.path를 사용해보도록 하겠습니다.


import os

import os.path


myPath = '/내가/원하는/디렉토리/경로'

files = list()


for a in os.listdir(myPath):

    fullPath = os.path.join(myPath, a) # 파일일 수도 있고 디렉토리일 수도 있습니다.

    if os.path.isfile(fullPath): # 파일이라면

        files.append(fullPath)


print(files)


이렇게 하면 myPath 안에 있는 파일들이 화면에 출력됩니다.

[파이썬] argparse - 명령행 인자 쉽게 설정하기


파이썬 프로그래밍을 하다 보면 명령행에서 인자를 받아야 할 때가 종종 있습니다. 물론 sys.argv를 사용해도 되지만, argparse 모듈을 사용하면 명령행 인자를 훨씬 쉽게 관리할 수 있습니다. 사용법은 다음과 같습니다.


import argparse


parser = argparse.ArgumentParser(description='명령행 인자를 쉽게 설정합시다.')

parser.add_argument("-f", "--foo", required=True) # foo라는 인자

parser.add_argument("-b", "--bar",   required=True) # bar라는 인자


args = parser.parse_args()

foo = args.foo

bar = args.bar

# 이제부터 foo, bar 변수를 사용하시면 됩니다.


이렇게 프로그램을 만드신 후에는 명령행에서 쉽게 인자를 주실 수 있습니다. 다음과 같이 하시면 됩니다. 두 방법 다 됩니다.


$ python 인자연습.py -f 안녕 -b 하세요

$ python 인자연습.py --foo 안녕 --bar 하세요


[리눅스] 특정 mime 형식의 파일만 출력하기 (예제: jpeg 파일만 출력)


find ./ -type f -exec file --mime-type {}  \; | awk '{if ($NF != "image/jpeg") print $0 }'


이렇게 하면 jpeg 형식의 파일만 출력됩니다. 다른 형식의 파일을 찾아보고 싶으시면 "image/jpeg" 부분을 바꾸시면 됩니다.

[VI, VIM] 검색 시 대소문자 구분 안 하기


대소문자 구분 없이 검색하려면 검색어 뒤에 \c 옵션을 붙여주면 됩니다. (사실 아무데나 붙여도 됩니다.)

/Hello\c

라고 하면 Hello, hello, HELLO 등이 모두 다 검색됩니다.


두 부류의 전문가: 모르는 사람이 없는, 알 만한 사람은 다 아는

대학원을 다니고 회사를 다니면서, 전문가라고 불리는 사람들은 두 부류로 나뉜다는 것을 알게 되었다. 대중에게 널리 전문가로 알려진, 모르는 사람이 없을 정도로 유명한 사람이 있는가 하면 딱히 유명하지는 않지만 특정 분야에서 알 만한 사람은 다 아는 전문가가 있다.

그 동안의 경험으로 보면 첫 번째 부류보다는 두 번째 부류, 즉 별로 유명하지는 않지만 알 만한 사람은 다 아는 전문가의 실력이 월등히 높았다.

두 번째 부류의 전문가들은 대부분 자기 연구 하기도 바빠서 대외활동이나 외부 행사, 인맥 관리는 거의 신경을 못 쓰고 있었다. 반대로 첫 번째 부류의 "자칭" 전문가들은 적당한 수준의 경력만을 가진 상태에서 언변이나 자기 홍보 능력이 좋아서 대중에게 전문가로 인식된 경우가 많았다.

이 사실을 알게 된 후로는 TV 고정 프로그램에 출연하는, 그중에서도 특히 강의나 토론도 아니고 예능에 출연하는 전문가들은 믿고 거르게 되었다. 은퇴한 능력자라면 모를까, 현업에 있는 사람이면 연구하고 논문 쓰기에도 시간이 부족할텐데 어떻게 매주 예능을 찍겠나.

'글쓰기 > 단상' 카테고리의 다른 글

만국의 척척석사여 기운내라  (0) 2020.12.29
저출산 대책  (0) 2019.11.21
홍콩 시위에 대한 단상 2  (0) 2019.11.14
홍콩 시위에 대한 단상  (0) 2019.09.06
예방접종  (0) 2018.11.23
더하기와 플러스

초등학교를 졸업하고 중학교에 올라갔을 때 가장 낯설었던 일은 수학 선생님이 +를 더하기가 아니라 플러스라고 읽었던 일이다. 선생님 뿐만 아니라 학원에서 속칭 "선행학습"을 해 온 아이들은 다들 더하기 대신 플러스라는 말을 사용했다. 빼기도 마이너스가 되어 있었다. 어색했고 이상했다. 그렇게 일 더하기 일도 아니고 원 플러스 원도 아닌 일 플러스 일이라는 이상한 언어로 수학을 배웠다. 더하기는 초등학생이나 쓰는 용어이니 중학생이 되었으면 플러스 정도는 써 주어야 한다는 이상한 암묵적인 분위기가 있었다. 지금 생각해보면 왜 곱하기와 나누기는 타임즈, 디바이디드 바이라고 안 읽었나 싶다.

안 중요한 학문이 어디 있겠냐마는 수학은 정말 중요한 학문이다. 그리고 중요한 학문일수록 어휘의 우리말화가 중요하다. 잘 만들어진, 혹은 잘 번역된 전공 용어는 개념을 쉽게 이해하는 데에 큰 도움이 된다. 다행히 고등학교 수준 까지의 수학 용어는 우리말로 대부분 잘 옮겨진 편이다. 경우의 수, 제곱, 사다리꼴, 꼭짓점, 원뿔곡선 등 좋은 우리말 용어가 많다.

의아한 점은 대학교에 가면 다시 사람들이 영어 용어를 쓰기 시작한다는 점이다. 마치 중학교에 가자 더하기를 플러스라고 했던 것 처럼 대학에 가면 행렬을 매트릭스라고 하게 된다. 왜 그러는지는 아직도 모르겠다.

많은 사람들이 그렇게 말한다. 새로운 개념을 원서를 통해서 배우다 보니 우리말 용어를 쓰고 싶어도 우리말 용어가 없다고. 그렇게 따지면 자연수, 실수, 정수도 원래는 없던 말이었다. 아니, 인류 전체에게 그런 개념 자체가 없던 적도 있었다. 새로운 개념이 등장하면 그에 맞는 새로운 이름을 만들어서 붙여주면 될 일이다. 김춘수 시인도 이름을 제대로 불러줘야 나에게 와서 꽃이 된다고 하지 않았나.

수학에 국한된 이야기가 아니다. 대부분의 이공계 전공 과목이 그렇다. "이콜라이에서 진 뿔려서 젤러닝 한 다음에 마말리안 쎌에 넣었습니다" 같은 말이 나온다. 대장균에서 유전자 증폭시켜서 전기영동 한 후에 포유류 세포에 넣었다고 하면 될 것을.

각 전문 분야에서 우리말 용어가 더 많이 사용되었으면 좋겠다. 내가 할 수 있는 건 별로 없지만 작은 변화라도 만들고 싶은 마음에 예전에 중고등학생 수학 과외를 할 때면 꼭 더하기, 빼기라는 말을 썼다. 헷갈릴 일이 없는 상황이면 세모, 네모도 썼다. 단 한 번도 학부모들에게 그에 대한 불만을 들은 적이 없고 그렇게 일 년 이상 과외를 했던 학생도 있는 걸 보면 적어도 더하기 빼기 세모 네모를 썼다고 해서 학생들 수학 실력이 떨어지지는 않았던 것 같다.


'글쓰기 > 수필' 카테고리의 다른 글

복덕방과 경복궁, 공인중개사와 청와대  (0) 2018.08.20
너무 규칙적이지 말자  (0) 2018.05.30
그 남자 그 여자  (1) 2017.09.25
  (0) 2017.09.10
'덤프'하지 말자  (1) 2017.07.03

[자바] JNI 시그니처 (Signiture)


JNI 작업을 엄청 하다가 갑자기 정리해놓고 싶어서 씁니다.

https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html 에 있는 내용을 번역했습니다.


타입 시그니처


Z : 부울 값

B : 바이트

C : 문자

S : 쇼트 정수

I : 인트 정수

J : 롱 정수

F : 플로트 실수

D : 더블 실수

L : 클래스-전체-경로 ; 클래스

[ : 배열

( 인자들 ) 반환형 : 함수


예를 들어 다음의 자바 함수를 생각해 보겠습니다.


long f (int n, String s, int[] arr); 


이 함수의 시그니처는 다음과 같습니다.


(ILjava/lang/String;[I)J


---

(제가 추가한 내용)

I는 정수 n, Ljava/lang/String;은 문자열 s, [I는 정수 배열 arr이고 J는 반환값 long을 뜻합니다.


[LaTeX] latex에서 한글 사용하기


\usepackage{kotex}


를 추가하시면 LaTeX에서 한글을 사용할 수 있습니다.

+ Recent posts