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
°Ô½Ã¹°: 115 °Ç, ÇöÀç: 1 / 1 ÂÊ
¹øÈ£ Á¦       ¸ñ ÀÛ¼ºÀÚ µî·ÏÀÏ ¹æ¹®
115  perl format JMJS 24.6.22 450
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 407
113  Deleting from a Hash , defined , exists JMJS 25.7.9 464
112  yaml file Àбâ JMJS 23.11.30 517
111  alzipcon JMJS 22.11.26 571
110  file2date.pl JMJS 24.6.1 666
109  UTF-8, EUC-KR JMJS 19.12.15 693
108  wget.pl LWP Simple get JMJS 19.9.17 691
107  X JMJS 19.9.17 650
106  X JMJS 19.9.17 671
105  X JMJS 19.9.17 692
104  X JMJS 19.9.17 669
103  X JMJS 19.9.17 675
102  X JMJS 19.9.17 654
101  gnome-terminal JMJS 25.7.3 674
100  jsame.pl JMJS 09.5.21 2235
99  jos.pl JMJS 08.11.29 1911
98  jmngr.pl - jmjspro manager JMJS 08.11.29 1968
97  vhdl.pm JMJS 08.11.29 1869
96  jreg.pl JMJS 08.11.29 1911
95  jtree.pm JMJS 08.11.29 1912
94  w2c.pl JMJS 08.11.29 1953
93  jdread.pl JMJS 08.11.29 1703
92  ffile.zip ffilediff.pl JMJS 09.4.24 1767
91  rgb2ycbcr.pl JMJS 10.5.12 2050
90  proview.pl JMJS 08.11.29 2109
89  smi_shift.pl JMJS 10.10.3 1756
88  srt2smi.pl srtshift.pl JMJS 18.7.14 1963
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1620
86  hash JMJS 24.6.22 1887
85  tr a-z A-Z ġȯ , ´ë¼Ò¹®ÀÚ º¯È¯ , ¹®ÀÚ¿­ Á¶°Ç , ... JMJS 24.6.22 1607
84  JARRAY->jfunc JMJS 08.10.2 1667
83  ¼öÄ¡ÇÔ¼ö - ... JMJS 09.5.7 2137
82  ¿ªÇà·Ä3x3 JMJS 09.5.7 2249
81  hex2int.pl JMJS 10.9.12 2836
80  stat - file status º¸±â JMJS 07.12.16 1784
79  Perl Tip JMJS 24.6.22 2864
78  SMI file sync delay JMJS 07.7.18 1846
77  rmword.pl JMJS 07.6.18 1784
76  pack unpack JMJS 24.6.22 1814
75  [Perl]read_dir.pl JMJS 07.2.22 2051
74  [Perl]jtab2char - tab¹®ÀÚ¸¦ ƯÁ¤ char·Î ¹Ù²ãÁÖ±â JMJS 07.2.22 1981
73  Perl ¼ýÀÚ Sorting JMJS 11.5.17 2021
72  [CGI]GET and POST JMJS 06.11.20 3628
71  Perl Grammer JMJS 06.9.4 3216
70  Ç¥ÁØ ¸ðµâ JMJS 06.8.10 2168
69  Getopt::Long example JMJS 06.8.10 2271
68  array of array JMJS 06.4.22 1769
67  [HTML]Å×ÀÌºí ¹è°æ¿¡ ±×¸²³Ö±â JMJS 06.3.8 1859
66  l2w.pm - line to word JMJS 08.12.1 1872
65  make_random_chars JMJS 05.8.10 1687
64  mail º¸³»´Â script JMJS 05.3.23 1673
63  ½ÇÇàÆÄÀÏÀ» ½ÇÇà½Ã۰í Ç¥ÁØ¿¡·¯ Àбâ JMJS 09.2.25 1689
62  ÆË¾÷â(°øÁöâ)¶ç¿ì±â Jinsung 03.12.16 2711
61  print <<ENDLINE JMJS 03.12.5 1762
60  [HTML]Target JMJS 03.5.21 1805
59  [Perl]jutil.pm JMJS 03.5.3 1971
58  [Perl]jdiff.pl JMJS 02.6.6 1962
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 1954
56  [HTML]ÀÚµ¿À¸·Î ´Ù¸¥ ÆäÀÌÁö À̵¿ JMJS 02.1.19 1808
55  STDIN file open glob -w warning JMJS 24.6.22 1859
54  opendir , readdir , closedir JMJS 24.6.22 1826
53  rand_diff JMJS 01.10.23 1749
52  vcd2v.pl JMJS 15.8.25 1736
51  file upload JMJS 24.6.22 1749
50  umask(070) <- chmod o-rwx Áø¼º 01.3.16 1937
49  head2index Áø¼º 01.3.15 1630
48  grep.pl JMJS 11.1.20 1753
47  chr(13) = \M Áø¼º 01.3.15 1596
46  stty JMJS 01.3.12 1709
45  des.pl JMJS 01.3.8 1626
44  chr_plus.pl JMJS 01.3.8 1669
43  get passwd in unix JMJS 19.8.18 1563
42  unsort JMJS 19.9.10 1878
41  read from website web JMJS 19.5.15 1563
40  vec JMJS 01.3.8 1853
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1697
38  [Perl Tk] µµ½ºÃ¢ ¾øÀÌ, ÆÞ Tk ½ºÅ©¸³Æ® ½ÇÇàÇϱâ; ... JMJS 17.9.30 1726
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1782
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1822
35  mkmm.pl - make freemind JMJS 12.5.22 1799
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1809
33  .xls output csv ÆÄÀÏ¿¡ \n "°¡ ÀÖÀ»¶§ JMJS 11.4.13 1725
32  jdcat.pl juncat.pl JMJS 11.2.24 1859
31  print chr(ord('a')); JMJS 01.3.8 1762
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1684
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1731
28  remove blank $abc =~ s/[\s]+//g; Á¤±ÔÇ¥Çö½Ä ... JMJS 25.7.16 1693
27  array and for JMJS 00.11.14 1556
26  È¨ÆäÀÌÁö ÀÚµ¿ À̵¿ JMJS 00.10.28 1661
25  html¿¡¼­ ¾²ÀÌ´Â ±âȣǥ½Ã¹æ¹ý JMJS 00.9.30 1508
24  ¹è¿­ÀÇ ¹üÀ§ ¿¬»êÀÚ JMJS 00.9.20 1896
23  for(1..3) { print "$_";} JMJS 09.4.24 1561
22  package JMJS 24.6.22 1621
21  ÁÙ¿¡¼­ ÇѱÛÀÚ °íÄ¡±â JMJS 00.8.7 1677
20  hotkey function by getc JMJS 00.7.21 1704
19  read, sysread, syswrite JMJS 00.7.21 2636
18  crypt JMJS 00.7.13 1921
17  csv2gan.pl JMJS 11.4.4 1918
16  hexa JMJS 24.6.18 1724
15  file in out.pl JMJS 00.7.5 1893
14  ARGV JMJS 00.7.5 1762
13  jtime.pm - localtime, timelocal JMJS 09.4.9 2186
12  @INC JMJS 00.7.5 2128
11  $#myarray JMJS 00.7.5 1871
10  Hash of Array JMJS 00.7.5 1669
9  package JARRAY JHASH JMJS 00.7.4 2018
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1913
7  base64 enc dec binary JMJS 25.6.30 1718
6  file lock JMJS 00.7.4 1804
5  gettime JMJS 00.7.4 1926
4  [Perl]jcdread.pl JMJS 00.7.4 1894
3  [Perl]jdread.pl JMJS 00.7.4 1759
2  Monti Hall problem JMJS 24.6.27 1751
1  DESTROY JMJS 09.7.20 1741
[1]