[펄 (Perl)] 특정 디렉토리 내의 모든 파일 리스트 출력하기


특정 디렉토리 내의 모든 파일 리스트를 재귀적으로(recursive) 출력하는 펄 함수는 다음과 같습니다.


sub process_files

{

    my $path = shift;

    opendir (DIR, $path) or die;


    my @files = map { $path . '/' . $_ } grep { !/^\.{1,2}$/ } readdir (DIR);

    my @result;

    closedir (DIR);


    for (@files)

    {

        if (-d $_) { push @result, process_files ($_); }

        else { push @result, $_; }

    }

    return @result;

}


[자바] 배열 내용 출력하기 (Arrays.toString())


자바에서 배열 내용을 출력해보려고 배열 자체에서 toString()을 사용하면 배열의 내용이 아니라 배열의 주소값이 출력됩니다. 배열의 내용을 출력하려면 Arrays.toString()을 사용해야 합니다. 예제 코드는 아래와 같습니다.


double[] values = {1.0, 1.1, 1.2};

System.out.println(values.toString()); // 이렇게 하면 [D@46a49e6 같은 값이 나옵니다.

System.out.println(Arrays.toString(values)); // 이렇게 하면 [1.0, 1.1, 1.2] 이 출력됩니다.


[리눅스] 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 안에 있는 파일들이 화면에 출력됩니다.

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


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


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

+ Recent posts