LogIn E-mail
설계이야기
[Perl]jtab2char - tab문자를 특정 char로 바꿔주기
# 74 JMJS    07.2.22 10:55

#!/usr/bin/perl
# 2003.5.15 Jinsung Park

my $tab = "        ";
my $infile = "";
my $outfile = "";
while(@ARGV) {
        if($ARGV[0] =~ /^-tab/i) {
                shift(@ARGV);
                $tab = $ARGV[0];
                shift(@ARGV);
        }
        else {
                if($infile eq "") { $infile = $ARGV[0];}
                else { $outfile = $ARGV[0];}
                shift(@ARGV);
        }
}

my $tablength=length($tab);
my @tabs=split(//,$tab);

if($infile eq "") {
        print "usage:jtab2char -tab \"___\" infile outfile\n";
        exit;
}

if($outfile eq "") {
        $outfile = "j_$infile";
}

if(-f $outfile) {
        print "$outfile exist. Do you want to overwrite it ?(y/N)";
        $achr=<STDIN>;
        if($achr!~/^y/i) { exit;}
}

open(IN,"$infile")||die("$infile can not be read.\n");
open(OUT,">$outfile")||die("$outfile can not be opened.\n");
while(my $aline=<IN>) {
        $aline =~ s/[\s\n]+$/\n/g;
        @achrs=split(//,$aline);
        my $k=0;
        for(my $i=0;$i<=$#achrs;$i++) {
                if($achrs[$i] eq "\t") {
                        my $nlength = $k % $tablength;
                        for($j=$nlength;$j<$tablength;$j++) {
                                print OUT $tabs[$j % $tablength];
                                $k++;
                        }
                }
                else {
                        print OUT $achrs[$i];
                        $k++;
                }
        }
}
close(IN);
close(OUT);

첨부파일: jtab2char.pl
게시물: 106 건, 현재: 1 / 2 쪽
[1] [2]
번호 제       목 작성자 등록일 방문
113  package 변수 main 에서 사용시 local 선언 말 것 jinsung 20.12.10 19
112  foreach sort JMJS 20.8.15 53
111  diamond operator , jsort (square mix) jinsung 20.11.3 56
110  file2date.pl JMJS 20.1.12 119
109  UTF-8, EUC-KR JMJS 19.12.15 129
108  wget.pl LWP Simple get JMJS 19.9.17 212
100  jsame.pl JMJS 09.5.21 1690
99  jos.pl JMJS 08.11.29 1402
98  jmngr.pl - jmjspro manager JMJS 08.11.29 1443
97  vhdl.pm JMJS 08.11.29 1398
96  jreg.pl JMJS 08.11.29 1409
95  jtree.pm JMJS 08.11.29 1472
94  w2c.pl JMJS 08.11.29 1413
93  jdread.pl JMJS 08.11.29 1209
92  ffile.zip ffilediff.pl JMJS 09.4.24 1256
91  rgb2ycbcr.pl JMJS 10.5.12 1567
90  proview.pl JMJS 08.11.29 1594
89  smi_shift.pl JMJS 10.10.3 1247
88  srt2smi.pl srtshift.pl JMJS 18.7.14 1434
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1069
86  opendir, readdir, closedir JMJS 08.10.12 1385
85  tr a-z A-Z JMJS 08.10.3 1193
84  JARRAY->jfunc JMJS 08.10.2 1164
83  수치함수 - ... JMJS 09.5.7 1617
82  역행렬3x3 JMJS 09.5.7 1704
81  hex2int.pl JMJS 10.9.12 2409
80  stat - file status 보기 JMJS 07.12.16 1336
79  Perl Tip JMJS 09.7.20 2442
78  SMI file sync delay JMJS 07.7.18 1402
77  rmword.pl JMJS 07.6.18 1295
76  [Perl]package AP jinsung 07.2.28 1194
75  [Perl]read_dir.pl JMJS 07.2.22 1474
74  [Perl]jtab2char - tab문자를 특정 char로 바꿔주기 JMJS 07.2.22 1437
73  Perl 숫자 Sorting JMJS 11.5.17 1550
72  [CGI]GET and POST JMJS 06.11.20 3246
71  Perl Grammer JMJS 06.9.4 2816
70  표준 모듈 JMJS 06.8.10 1682
69  Getopt::Long example JMJS 06.8.10 1861
68  array of array $P[$j][$i] jinsung 20.12.20 1287
67  [HTML]테이블 배경에 그림넣기 JMJS 06.3.8 1368
66  l2w.pm - line to word JMJS 08.12.1 1349
65  make_random_chars JMJS 05.8.10 1210
64  mail 보내는 script JMJS 05.3.23 1165
63  실행파일을 실행시키고 표준에러 읽기 JMJS 09.2.25 1182
62  팝업창(공지창)띄우기 Jinsung 03.12.16 2271
61  print <<ENDLINE JMJS 03.12.5 1270
60  [HTML]Target JMJS 03.5.21 1306
59  [Perl]jutil.pm JMJS 03.5.3 1547
58  [Perl]jdiff.pl JMJS 02.6.6 1429
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 1470
56  [HTML]자동으로 다른 페이지 이동 JMJS 02.1.19 1316
55  Perl 설치하기 - ActiveWare JMJS 02.1.16 1322
54  opendir , readdir , closedir JMJS 02.1.4 1356
53  rand_diff JMJS 01.10.23 1255
52  vcd2v.pl JMJS 15.8.25 1323
51  file upload JMJS 01.3.16 1286
50  umask(070) <- chmod o-rwx 진성 01.3.16 1434
49  head2index 진성 01.3.15 1135
48  grep.pl JMJS 11.1.20 1250
47  chr(13) = \M 진성 01.3.15 1122
46  stty JMJS 01.3.12 1242
45  des.pl JMJS 01.3.8 1178
44  chr_plus.pl JMJS 01.3.8 1202
43  get passwd in unix JMJS 19.8.18 1052
42  unsort JMJS 19.9.10 1303
41  read from website web JMJS 19.5.15 1089
40  vec JMJS 01.3.8 1359
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1275
38  [Perl Tk] 도스창 없이, 펄 Tk 스크립트 실행하기; ... JMJS 17.9.30 1239
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1316
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1386
35  mkmm.pl - make freemind JMJS 12.5.22 1333
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1338
33  .xls output csv 파일에 \n "가 있을때 JMJS 11.4.13 1205
32  jdcat.pl juncat.pl JMJS 11.2.24 1358
31  print chr(ord('a')); JMJS 01.3.8 1282
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1220
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1320
28  remove blank $abc =~ s/[\s]+//g; JMJS 00.11.15 1262
27  array and for JMJS 00.11.14 1099
26  홈페이지 자동 이동 JMJS 00.10.28 1139
25  html에서 쓰이는 기호표시방법 JMJS 00.9.30 1097
24  배열의 범위 연산자 JMJS 00.9.20 1402
23  for(1..3) { print "$_";} JMJS 09.4.24 1088
22  package JMJS 00.9.18 1122
21  줄에서 한글자 고치기 JMJS 00.8.7 1215
20  hotkey function by getc JMJS 00.7.21 1317
19  read, sysread, syswrite JMJS 00.7.21 2113
18  crypt JMJS 00.7.13 1423
17  csv2gan.pl JMJS 11.4.4 1431
16  hexa JMJS 00.7.7 1240
15  file in out.pl JMJS 00.7.5 1435
14  ARGV JMJS 00.7.5 1284
13  jtime.pm - localtime, timelocal JMJS 09.4.9 1808
12  @INC JMJS 00.7.5 1640
11  $#myarray JMJS 00.7.5 1385
10  Hash of Array JMJS 00.7.5 1197
9  package JARRAY JHASH JMJS 00.7.4 1461
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1397
7  치환 전이 JMJS 00.7.4 1212
[1] [2]