'2008/09'에 해당되는 글 4건

  1. 2008.09.21 XP에서도 윈도우2K처럼
  2. 2008.09.19 SWT JFace Eclipse Sample
  3. 2008.09.03 vi 특정문자열 삭제
  4. 2008.09.02 Perl 기초

네트웍 접속하기
\\IP\d$

제어판>관리도구>로컬보안설정>보안옵션>네트워크 액세스:로컬 계정에 대한 공유 및 보안

게스트전용으로 되있는 것을 일반-로컬사용자를 그대로 인증으로 바꿔주시면 됩니다.

Posted by 이버리
,
SWT JFace Eclipse Screenshots
2D( 39 )  Application Window( 5 ) Browser HTML( 14 )  Busy Indicator( 1 ) Button( 14 )  Calculator( 2 )
Calendar( 1 ) Canvas( 3 ) Caret( 2 ) Clipboard( 5 ) Combo( 8 ) CoolBar( 12 ) 
Cursor( 5 ) Custom Control( 3 ) Dialog( 24 )  Drag Drop( 11 )  Eclipse Plugin( 24 )  Editor( 8 )
Event( 10 )  File Browser( 2 ) File Dir Chooser( 4 ) Focus( 1 ) Font( 4 ) Form( 4 )
Group( 6 ) I18N( 1 ) Image( 16 )  JFace Dialog( 6 ) JFace Registry( 2 ) Label( 19 ) 
Layout( 50 )  Link( 2 ) List Viewer( 2 ) List( 11 )  Menu( 17 )  Monitor( 1 )
Mouse Key( 10 )  MVC( 1 ) OpenGL( 3 ) Password( 3 ) PopupList( 1 ) Preferences( 3 )
Print( 9 ) ProgressBar( 7 ) Radio Button( 3 ) Sash( 6 ) SashForm( 4 ) Scale( 3 )
Scroll( 7 ) ScrollBar( 1 ) Shell Display( 26 )  Slider( 5 ) Small Application( 8 ) Spinner( 4 )
Split( 1 ) Status Bar( 3 ) StyledText( 9 ) SWT Swing AWT( 4 ) Tab( 11 )  Table( 53 ) 
TableTree( 3 ) Text( 26 )  Thread( 2 ) ToolBar( 13 )  Tooltips( 2 ) Tree( 21 ) 
Undo Redo( 1 ) View Form( 2 ) WIN32( 13 )  Wizard( 4 )
Posted by 이버리
,

명령모드에서 v 를 누른 후

1행을 제외하고 블럭을 씌웁니다.

그리고 ex모드에서

g/^Getting/d 

를 하면 1행을 제외한 나머지 중에서 Getting 으로 시작하는 모든 행이 삭제됩니다.


------ 부가설명

vi에는 명령 모드 , ex모드, 삽입(insert) 모드 이렇게 3가지 모드가 있습니다.

질문하신 내용으로 보아, 아실 듯 ^^

1행을 제외한 나머지 행을 블럭을 씌우려면

gg 명령으로 가장 첫 줄로 이동한 후에

j로 한줄을 내려와

v로 블럭을 씌울 수 있게 한 후

G로 가장 아래 줄로 이동.

요약하면 ggjvG 다섯번만 손가락을 누르면 됩니다.

이동시 직접 줄 번호를 지정하거나

블럭을 씌우지 않고 ex명령만으로도 할 수 있으나

이렇게 하는 것이 직관적이고 손가락도 덜 움직이는 것 같습니다.


:g/특정문자열/d

위와 같은 ex명령은 특정문자열이 있는 라인을 삭제합니다.

조심해야 할 점이 있다면

의도하지 않은 라인까지 삭제할 가능성이 있다는 것 입니다.

예를 들면,

:% g/ting/d

ting 이라는 단어가 있는 줄을 지우려고 했는데

getting, meeting , hunting 등등의 단어가 있는 줄도 지우는 경우가 생길 수 있습니다.

이런 것을 막으려면 특정 문자열 또는 단어의 앞 뒤로 \< \> 를 감싸주면

해당 단어만을 의미할 수 있습니다.

:% g/\<ting\>/d 라고 하면 ting 앞 뒤로 알파벳이 붙지 않은 오직 ting 이라는 단어만 들어 있는 줄을 삭제합니다.

% 기호는 전체라인을 의미합니다.

^ 기호는 라인의 시작을 의미합니다.

Posted by 이버리
,

=================================================================
  * Subject : [제18장] 프로그래밍 언어 Perl
  * Writer: w0rm9 (research.hackerschool.org)
  * Date: 2004/03/02
=================================================================

/* 진작했어야 하는 걸 귀차니즘때문에 이제야 합니다.
 * 16장, 17장은 알아서 하세요 ;)
 */
0x01. Perl의 소개

■ Hello, Perl
[w0rm9@work PERL]$ cat hello.pl
#!/usr/bin/perl -w    // -w는 추가 경고를 설정하는 Perl 인터프리터에 대한 옵션

print "Hello, World\n";    // C 와 마찬가지로 Perl 문장은 세미콜론(;)으로 끝난다.

[w0rm9@work PERL]$ chmod +x hello.pl
[w0rm9@work PERL]$ ./hello.pl
Hello, World


0x02. Perl의 변수

■ 스칼라
스칼라 변수는 일반적인 스트링과 숫자

■ 배열
배열 변수는 $ 대신 @ 로 표기한다.

[w0rm9@work PERL]$ cat arrary.pl
#!/usr/bin/perl -w

@a = ("\n", " ", "wiseguys", "fighting"); // 배열 선언
print $a[2], $a[1], $a[3], $a[0];  // 0부터 시작함
print $a[0];

@b = @a[0, 2..3];    // 0번째와 2번째에서 3번째까지를 @b에 할당
print $b[1], $b[2], $b[0];

($b[1], $b[2]) = ($b[2], $b[1]);  // Perl에선 이런식으로 두 변수의 값을 교환할 수 있다.
print $b[1], $b[2], $b[0];

[w0rm9@work PERL]$ chmod +x arrary.pl
[w0rm9@work PERL]$ ./arrary.pl
wiseguys fighting

wiseguysfighting
fightingwiseguys

■ 해시
해시 변수는 조합배열이라 할 수 있다. 키를 통해 데이터를 저장하고 구할 수 있다. 기호는 % 를 사용한다.

[w0rm9@work PERL]$ cat hash.pl
#!/usr/bin/perl

%a = ( "1" => "wise", "2" => "guys", "3" => "fighting", "4" => " ", "5" => "\n" );
print $a{1}, $a{2}, $a{4}, $a{3}, $a{5};

[w0rm9@work PERL]$ chmod +x hash.pl
[w0rm9@work PERL]$ ./hash.pl
wiseguys fighting

■ 인용과 대체
[w0rm9@work PERL]$ cat var.pl
#!/usr/bin/perl
$a = "wiseguys";

print '$a fighting\n';    // 변수나 특수문자가 동작하지 않는다.
print "$a fighting\n";

print "4 babo"+1, "\n";    // 다음과 같은 경우 "4 babo" 가 4로 대체된다.
print "babo 4"+1, "\n";
print "123"+"456", "\n";
[w0rm9@work PERL]$ chmod +x var.pl
[w0rm9@work PERL]$ ./var.pl
$a fighting\nwiseguys fighting
5
1
579

■ 특수 변수
[w0rm9@work PERL]$ cat var2.pl
#!/usr/bin/perl

print $0, "\n";     // 파일이름
print $ARGV[0], "\n";    // 첫번째 인수
print $ARGV[1], "\n";    // 두번째 인수
print $ENV{PATH}, "\n";    // %ENV 해시 변수
print $ENV{USER}, "\n";


[w0rm9@work PERL]$ chmod +x var2.pl
[w0rm9@work PERL]$ ./var2.pl wiseguys fighting
./var2.pl
wiseguys
fighting
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/w0rm9/bin
w0rm9


0x03. 연산자와 함수

■ 숫자 연산자
[w0rm9@work PERL]$ cat test1.pl
#!/usr/bin/perl

$a = (4*5)+3;     // c언어와 같다.
print $a, "\n";

$b = 17 % 5;     // 나머지
print $b, "\n";

$c = 22 % -7;     // 22를 7로 나눈, 나머지 1. 1 - 7 = -6
print $c, "\n";

$d = 2 ** 8;     // 2의 8승
print $d, "\n";

$a = 5; $b = 7;
print ++$a + $b, "\n";    // 6 + 7 = 13

[w0rm9@work PERL]$ chmod +x test1.pl
[w0rm9@work PERL]$ ./test1.pl
23
2
-6
256
13

■ 스트링 연산자
[w0rm9@work PERL]$ cat test2.pl
#!/usr/bin/perl

$a = "w0" . "rm" . "9\n";   // 마침표 연산자는 스트링을 결합한다.
print $a;

$b = "1" . "2";
print $b, "\n";

$c = "number " . 1;
print $c, "\n";

$d = "babo".("w0rm9"x4);   // x는 반복
print $d, "\n";

$e = 1 x 3;     // 3이 아니고 1이 3번
print $e, "\n";

[w0rm9@work PERL]$ chmod +x test2.pl
[w0rm9@work PERL]$ ./test2.pl
w0rm9
12
number 1
babow0rm9w0rm9w0rm9w0rm9
111
[w0rm9@work PERL]$ cat ch.pl
#!/usr/bin/perl

$a = "wiseguys fighting\n";

chomp($a);     // 새 줄 제거
print $a, "\n";

chop($a);     // 마지막 문제 제거
print $a, "\n";

$a = "abc"; print ++$a, "\n";
$a = "azz"; print ++$a, "\n";

$passwd = "w0rm9:x:519:519::/home/w0rm9:/bin/bash";
@pass = split ":", $passwd;   // split는 : 를 기준으로 분리
print $pass[2], $pass[3], $pass[5], "\n";
$newpass = join ":", @pass[0..6];  // join은 : 를 중심으로 결합
print $newpass, "\n";

$string = "wiseguys fighting";
print substr($string, 15), "\n";
print substr($string, -3), "\n";
print substr($string, -18, 9), "\n";  // substr은 문자열을 -18(뒤에서 18번째)부터 9개를 출력. 0부터 시작
print substr($string, 4, 4), "\n";
substr($string, 9, 8, "good");   // 9부터 8개를 good으로 대체
print $string, "\n";

[w0rm9@work PERL]$ chmod +x ch.pl
[w0rm9@work PERL]$ ./ch.pl
wiseguys fighting
wiseguys fightin
abd
baa
519519/home/w0rm9
w0rm9:x:519:519::/home/w0rm9:/bin/bash
ng
ing
wiseguys
guys
wiseguys good

length는 스트링의 길이를 지정
reverse는 스트링을 반대 순서로 반환
uc와 lc는 각각 대문자와 소문자로 반환
ucfirst와 lcfirst는 스트링의 첫 문자를 대문자와 소문자로 반환

■ 논리 연산자와 비트 연산자
논리 연산자 &&, ||, !는 C에서와 같은 기능. 대신 "and", "or", "not"로도 사용가능
숫자를 비교할때 <, >, ==, !=
스트링을 비교할 때 lt, gt, eq, ne

■ 배열 연산
[w0rm9@work PERL]$ cat test3.pl
#!/usr/bin/perl

@a = ("0", "1", "2", "3");
print scalar @a;   //
print $#a;    // 배열 요소, 0부터 시작 그래서 3

print shift @a, "\n";   // 앞의 요소를 shift
print pop @a, "\n";   // 뒤의 요소를 pop
print shift @a, "\n";
print pop @a, "\n";

$a = ();
push @a, "2";    // 뒤에 요소 push
unshift @a, "1";   // 앞에 요소 unshift
push @a, "3", "4";
unshift @a, "-1", "0";
print join ",", @a, "\n";
print join ",", reverse @a, "\n";

@b = sort @a;
print join ",", @b, "\n";

@c = (5, 8, 3, 0, 1);
@d = sort {$a <=> $b} @a;
print join ",", @d, "\n";


[w0rm9@work PERL]$ chmod +x test3.pl
[w0rm9@work PERL]$ ./test3.pl
430
3
1
2
-1,0,1,2,3,4,

,4,3,2,1,0,-1-1,0,1,2,3,4,
-1,0,1,2,3,4,

■ 해시 연산
[w0rm9@work PERL]$ cat test4.pl
#!/usr/bin/perl

%wiseguys = ("1" => "mongii", "2" => "z0nk", "3" => "mirr");
%newguys = reverse %wiseguys;   // erverse 연산을 통해서 keys와 values를 바꿀 수 있다.
print $newguys{"z0nk"};
[w0rm9@work PERL]$ chmod +x test4.pl
[w0rm9@work PERL]$ ./test4.pl
2


0x04. 정규 수식

■ 일치
[w0rm9@work PERL]$ cat test5.pl
#!/usr/bin/perl

$a = "wiseguys forever!!";
print "nice wiseguys!!" if $a =~ /for/;  //$a에 for와 일치하는 문자열을 찾는다. 만약 대소문자를 구별하지 않을려면 /for/i 라고 해준다.
 
[w0rm9@work PERL]$ chmod +x test5.pl
[w0rm9@work PERL]$ ./test5.pl
nice wiseguys!!

□ 평가자
/sho?t/  //?는 0번이나 1번 일치한다. "shot", "shoot"
/sho+t/  //+는 최소한 한번 일치한다. "shot", "shoot", "shooot"..
/sho*t/  //*는 0번 이상 일치한다. "sht", "shot", shoot"...

\t  탭
\n  새줄
\s  공백
\w  단어(영문자/숫자, _)
\d  숫자
\S  공백이 아닌것
\W  단어가 아닌것
\D  숫자가 아닌것
.  모든것

■ 대체
[w0rm9@work PERL]$ cat test6.pl
#!/usr/bin/perl

$a = "wisegays forever!!";
print $a if $a =~ s/gays/guys/;   // gays 가 guys로 대체됨
[w0rm9@work PERL]$ chmod +x test6.pl
[w0rm9@work PERL]$ ./test6.pl
wiseguys forever!!


0x05. 제어 구조와 서브루틴

■ 테스트
■ 루프
■ 문장 변경자
■ 서브루틴


0x06. 파일 입력과 출력




_eof_

Posted by 이버리
,