본문 바로가기
반응형

Perl10

[perl] xargs 를 활용한 파일 이름 변경 예제 xargs 는 표준 입력을 다음 명령어의 arguments 로 변환시켜주는 unix 명령어이다. 예를들어 파일을 지우는 rm 명령어의 경우 rm (filename) 이런식으로 사용하는데, 이 경우 뒤에 (filename) 이 부분이 명령 인자(argument)에 해당된다. 물론 wildcard 등을 이용해서 한 번에 많은 파일을 지우거나, 폴더 전체의 파일을 지울 수 도 있다. rm * 하지만 만약 특정 pattern 만 취해서 파일을 삭제 하고 싶다면? 예를들어 중간에 (_old_) 라는 단어가 들어간 파일만 지우고 싶다면 아래처럼 ls | grep "_old_" | xargs rm 여러개의 명령어를 조합하여 실행시킬 수 있다. 이 경우 grep 에서 정규표현식을 사용할 수 있다는 점에서 그리고 xar.. 2021. 8. 9.
Perl Tutorial - 4. Count Lines 3 앞의 예제를 좀 더 깔끔하게 모듈화 시켜본다. #!/usr/bin/perl use 5.18.0; use warnings; use IO::File; main(@ARGV); sub main { my $filename = shift || "file.txt"; my $count = countlines( $filename ); say "there are $count lines in $filename"; } sub countlines { my $filename = shift; error("missing file") unless $filename; my $fh = IO::File->new( $filename , "r") or error("Cannot open $filename ($!)\n"); my $count = .. 2020. 12. 31.
Perl tutorial - 3. Count lines 2 전의 튜토리얼을 통해서 파일을 읽고, 행의 갯수를 새 보았는데 겨우 행의 갯수를 세기 위해서 모든 text 파일을 읽어서 저장하는 것은 사실 비효율적인 일이다. 즉 파일의 contents 는 필요없고 단순히 몇 line 으로 이루어져 있는 지를 확인하는 보다 직관적인 튜토리얼은 다음과 같다. #!/usr/bin/perl use 5.18.0; use warnings; use IO::File; ##library for io control my $filename = "file.txt"; #declear var my $fh = IO::File->new($filename, "r"); if( ! $fh ){ print("Cannot open $filename ($!)\n"); exit } my $count = 0;.. 2020. 12. 31.
Perl Tutorial - 2. Count Lines #!/usr/bin/perl use 5.18.0; use warnings; my $filename = "linesfile.txt"; open(FH, $filename); # open the file my @lines = ; # read the file close(FH); # close the file my $count = scalar @lines; # the number of lines in the file say "There are $count lines in $filename"; 지난번에 이어, 이번에는 파일 입출력과 관련된 튜토리얼이다. 먼저 Perl의 변수형은 int, float, string 등으로 데이터 타입에 따라 정의되는 다른 언어들과 달리 데이터의 형식 (단수, 복수 등)에 따라 scal.. 2020. 12. 28.
반응형