1. 공백 라인 제거
grep -ve '^ *$' from.txt > to.txt

2. 첫 글자까지의 공백 제거
sed 's/^ *//' from.txt > to.txt

또는 리다이렉션 대신 sed -i 옵션 사용 

Posted by ryu2811
1. /usr/share/vim/vim*/syntax 디렉토리에서 c.vim을 pc.vim으로 복사한다.
2. filetype.vim을 열어
     au BufNewFile,BufRead *.pc setf pc  를 추가한다.
Posted by ryu2811

indent -kr -bl -bli0 -bls -lp -nce -pcs  -ts4 -ut -l255 -st srcfile > newfile

-kr : k‐and‐r‐style
-bl : braces‐after‐if‐line
-bli0 : brace‐indent size 0
-bls : braces‐after‐struct‐decl‐line
-l255 : line‐length 255
-lp : continue‐at‐parentheses
-nce : dont‐cuddle‐else
-pcs : space‐after‐procedure‐calls
-st : standard-output
-ts4 : tab-size 4
-ut : use-tab

$ vi /usr/local/bin/myindent
#!/bin/bash

if [ -z $1 ]
then
    echo "Usage) `basename $0` srcfile"
    exit
fi

for fname in $@
do
    if [ -e $fname ]
    then
        /usr/bin/indent -kr -bl -bli0 -bls -lp -nce -pcs -ts4 -ut -l255 -st $fname > $fname.my
        if [ $? == 0 ]
        then
            echo "$fname convert success (ret:$?)"
            mv $fname $fname.old
            mv $fname.my $fname
        else
            echo "$fname convert fail (ret:$?)"
            exit
        fi
    else
        echo $fname not exist
    fi
done
Posted by ryu2811

Posted by ryu2811
2008. 11. 21. 12:41
일반 : sort <파일명>
중복열 제거 : sort <파일명> -u 또는 <파일명> | sort -u
중복데이터 추출 : sort <파일명> | uniq -d
중복되지 않은 데이터 출력 : sort <파일명> | uniq -u

Posted by ryu2811
배치 파일 연산자 쉘 스크립트 동의어
% $ 명령어줄 매개변수 접두사
/ - 명령어 옵션 플래그
\ / 디렉토리 패스 구분자
== = (같음) 문자열 비교 테스트
!==! != (다름) 문자열 비교 테스트
| | 파이프
@ set +v 현재 명령어를 에코하지 말 것
* * 파일명 "와일드 카드"
> > 파일 재지향(덮어 쓰기)
>> >> 파일 재지향(덧붙여 쓰기)
< < 표준입력 재지향
%VAR% $VAR 환경 변수
REM # 주석
NOT ! 뒤에 나오는 테스트 부정
NUL /dev/null 명령어 출력을 없애기 위한 "블랙홀"
ECHO echo 에코 (Bash 에는 옵션이 많이 있음)
ECHO. echo 빈 줄 에코
ECHO OFF set +v 다음에 나오는 명령어를 에코하지 말 것
FOR %%VAR IN (LIST) DO for var in [list]; do "for" 루프
:LABEL 없음 (필요치 않음) 라벨
GOTO 없음 (대신 함수를 씀) 스크립트의 다른 곳으로 건너 뜀
PAUSE sleep 일정 간격을 두고 잠시 대기
CHOICE case 나 select 메뉴 선택
IF if if-test
IF EXIST FILENAME if [ -e filename ] 파일이 존재하는지 확인
IF !%N==! if [ -z "$N" ] 변경가능한 매개변수인 "N"이 없다면
CALL source 나 . (도트 연산자) 다른 스크립트를 "포함"
COMMAND /C source 나 . (도트 연산자) 다른 스크립트를 "포함"(CALL과 동일)
SET export 환경 변수를 세트
SHIFT shift 명령어줄 변수 목록을 왼쪽으로 이동(shift)
SGN -lt or -gt (정수) 부호(sign)
ERRORLEVEL $? 종료 상태
CON stdin "콘솔"(표준입력)
PRN /dev/lp0 (일반적인) 프린터 디바이스
LP1 /dev/lp0 첫번째 프린터 디바이스
COM1 /dev/ttyS0 첫번째 시리얼 포트
Posted by ryu2811

__attribute__ ((packed)) : 구조체 내의 최대 사이즈 데이터 타입으로 alignment 하지 않도록한다.

************************************************************
#include <stdio.h>

typedef struct _test_t_
{
    unsigned char uc1;
    unsigned char uc2;
    unsigned long long ui1;
} test_t;

typedef struct _testp_t_
{
    unsigned char uc1;
    unsigned char uc2;
    unsigned long long ui1;
} __attribute__ ((packed)) testp_t;

int main (void)
{
    test_t t1;
    testp_t t2;

    printf ("test_t : %d\n", sizeof (t1));
    printf ("testp_t : %d\n", sizeof (t2));

    return 0;
}
************************************************************
[ryu2811@qwertyryu-home ~/work/src/test] ./kkk
test_t : 16
testp_t : 10

Posted by ryu2811
2008. 6. 17. 14:52

0

00

Ctrl-@ NUL

 

64

40

@

1

01

Ctrl-A SOH

65

41

A

2

02

Ctrl-B STX

66

42

B

3

03

Ctrl-C ETX

67

43

C

4

04

Ctrl-D EOT

68

44

D

5

05

Ctrl-E ENQ

69

45

E

6

06

Ctrl-F ACK

70

46

F

7

07

Ctrl-G BEL

71

47

G

8

08

Ctrl-H BS

72

48

H

9

09

Ctrl-I HT

73

49

I

10

0A

Ctrl-J LF

74

4A

J

11

0B

Ctrl-K VT

75

4B

K

12

0C

Ctrl-L FF

76

4C

L

13

0D

Ctrl-M CR

77

4D

M

14

0E

Ctrl-N SO

78

4E

N

15

0F

Ctrl-O SI

79

4F

O

16

10

Ctrl-P DLE

80

50

P

17

11

Ctrl-Q DCI

81

51

Q

18

12

Ctrl-R DC2

82

52

R

19

13

Ctrl-S DC3

83

53

S

20

14

Ctrl-T DC4

84

54

T

21

15

Ctrl-U NAK

85

55

U

22

16

Ctrl-V SYN

86

56

V

23

17

Ctrl-W ETB

87

57

W

24

18

Ctrl-X CAN

88

58

X

25

19

Ctrl-Y EM

89

59

Y

26

1A

Ctrl-Z SUB

90

5A

Z

27

1B

Ctrl-[ ESC

91

5B

[

28

1C

Ctrl-\ FS

92

5C

\

29

1D

Ctrl-] GS

93

5D

]

30

1E

Ctrl-^ RS

94

5E

^

31

1F

Ctrl_ US

95

5F

_

32

20

Space

96

60

`

33

21

!

97

61

a

34

22

"

98

62

b

35

23

#

99

63

c

36

24

$

100

64

d

37

25

%

101

65

e

38

26

&

102

66

f

39

27

'

103

67

g

40

28

(

104

68

h

41

29

)

105

69

i

42

2A

*

106

6A

j

43

2B

+

107

6B

k

44

2C

,

108

6C

l

45

2D

-

109

6D

m

46

2E

.

110

6E

n

47

2F

/

111

6F

o

48

30

0

112

70

p

49

31

1

113

71

q

50

32

2

114

72

r

51

33

3

115

73

s

52

34

4

116

74

t

53

35

5

117

75

u

54

36

6

118

76

v

55

37

7

119

77

w

56

38

8

120

78

x

57

39

9

121

79

y

58

3A

:

122

7A

z

59

3B

;

123

7B

{

60

3C

< 

124

7C

|

61

3D

=

125

7D

}

62

3E

> 

126

7E

~

63

3F

?

127

7F

DEL

Posted by ryu2811
PSP를 사용하다가 불편함을 느껴서 이것저것 시도해 보았다.

첨에는 내가 홈브류를 하나 만들어 볼까 하면서 시작한건데 나이가 들면서
점점 더 게을러 지기만 하니 이도 힘들것 같고 그냥 각 기능별로 간단하게
공부해보는 셈 치고 구현해 보기로 했었다.

첨에 만든건 SDL을 이용해서 PSP에 그림파일을 뿌려보는 것이었다.
생각보다는 간단하게 구현 되었다. 그다음에 한것이 한글 관련된 것이었는데
게임 관련 사이트에 PSP용 한글 라이브러리가 공개 된게 있어서 살펴보다가
TTF 폰트를 사용하는 간단한 프로그램을 만들어 보았었다.

세번째가 이번인데 zip으로 압축된 파일에서 파일을 추출해 내는 프로그램이다.
관련된 라이브러리와 소스는 웹서핑을 하다보니 많이 풀려 있는 상태여서 이것
역시 쉽게 구현 되었다. unzip 관련 소스파일을 몇개 복사해와서 함수만 콜 하니
해결 되었다.

test.zip 라는 파일에는 111.txt 222.txt 333.txt 444.txt 4개의 파일이 묶여 있고
각각의 파일들을 추출해 내는 프로그램이다. unix 환경에서 실행 되며 PSP에서도
실행 된다. 단 PSP 에서 실행하려면 printf 같은 unix c 함수는 수정해주어야 한다.

위 프로그램의 소스코드이다.
Posted by ryu2811

새 시스템에서 계정을 만들때마다 쉘과 VIM의 설정이 항상 귀찮기만하다.
어디선가 잘 되어있는 vimrc 의 내용을 긁어왔다.

Posted by ryu2811
이전버튼 1 2 이전버튼