awk?


awk는 파일 정보, 파일 시스템 정보, 프로세스 정보등  수많은 데이터 중에서 원하는 것을 추출 혹은 데이터 조작 할 수 있게 해주는 유용한 프로그램이다.




awk 사용법 (파일 데이터 추출)


[사용법]

awk 'pattern' filename

awk '{action}'  filename

awk 'pattern' '{action}' filename


예제를 보면서 사용법을 익혀보도록 하겠다.

[file.dat 파일 내용]

 value 1234 가

 test 2345 나

 fire 4818 다

 window 6281 라


위와 같은 파일 내용이 있다고 하면 위의 내용을 아래와 같이 데이터를 조작해 보도록 하겠다.


[value를 포함하는 라인 추출]

 awk '/value/' file.data 

 value 1234 가



[공백 기준으로 첫번째 필드만 출력]

 awk '{printf $1}' file.data 

 value

 test

 fire

 window


[ fire로 시작하는 라인에서 공백 기준으로 1,3번째 필드만 출력]

 awk '/fire/{printf $1, $3}' file.data 

 fire 다






awk 사용법 (명령 후 데이터 추출)


[사용법]

command | awk 'pattern'

command | awk '{action}'

command | awk 'pattern' '{action}'


예제를 보면서 사용법을 익혀보도록 하겠다.

[file.data 를 cat 했을 때 나오는 결과]

 value 1234 가

 test 2345 나

 fire 4818 다

 window 6281 라


위와 같은 명령어를 수행한 후 출력 된 내용을 아래와 같이 데이터를 조작해 보도록 하겠다.


[value를 포함하는 라인 추출]

 cat file.data | awk '/value/'

 value 1234 가



[공백 기준으로 첫번째 필드만 출력]

 cat file.data | awk '{printf $1}'

 value

 test

 fire

 window


[ fire로 시작하는 라인에서 공백 기준으로 1,3번째 필드만 출력]

 cat file.data | awk '/fire/{printf $1, $3}'

 fire 다


위의 예제에서 cat file.data 대신 디스크 정보를 보여주는 df 나 프로세스 상태를 보여주는 ps 등을

넣고 awk를 이용해 사용자가 원하는 데이터를 추출할 수 있다.

반응형

'운영체제(OS) > Linux,Unix' 카테고리의 다른 글

[Centos] 버전 확인  (0) 2023.07.11
[Centos] 방화벽 설정  (0) 2023.07.05
[Unix/Linux] vi, vim ^M 제거  (0) 2017.09.28
[Unix/Linux] ipcs, ipcrm 사용법  (0) 2017.01.10
[Unix/Linux] tar, gz 파일 묶음 압축 사용법  (0) 2017.01.08

vi, vim ^M 제거


윈도우에서 작성한 파일을 Unix/Linux상에 올리면 개행 문자가 깨져서 ^M가 보이는 경우를 봤을 것이다.

이것은 윈도우에서는 CRLF 가 개행인데 Linux/Unix에서는 LF가 개행이라 나타나는 현상으로 보면 된다.


[CR,LF 뜻]

라인피드(LF : Line Feed) => 현재 위치에서 바로 아래로 이동

캐리지리턴(CR: Carriage return) => 커서의 위치를 앞으로 이동


설명은 이정도로 하고 제거 방법을 알아 보자


vi, vim에서 제거 하는 방법


결론부터 말하면 다음과 같이 하면 된다.

:%s/^M//g

위에서 ^M는 ^+M 이 아니고 Ctrl + v + m 이다.


vi에서 입력한 각 명령어에 대해 설명 하겠다.

:         --> vi,vim에서 명령어를 입력 하겠다는 신호

:%s       --> 문자열을 치환하겠다는 명령어

:%s/^M    --> ^M 문자열을 치환하겠다

:%s/^M//  --> ^M 문자열을 공백으로 치환하겠다.

:%s/^M//g --> 해당 문서 전체 ^M 문자열을 공백으로 치환하겠다.

 





윈도우에서 Unix/Linux로 파일 올릴때 ^M 안생기게 하는 방법


운영체제 마다 줄바꿈 정의가 다르다. 

각 운영체제 마다 정의를 살펴 보자.


윈도우/DOS : CRLF 조합으로 줄바꿈을 정의

Unix/Linux/C : LF 만으로 줄바꿈을 정의


이래서 윈도우에서 작성 된 것을 Unix/Linux 계열로 올리면 vi로 편집했을 때 ^M이 붙는 것을 확인 할 수 있다.

물론 ftp로 올릴 때 방식이 텍스트/2진 어떤 것을 선택하느냐에 따라 달라질 수 있다.

텍스트 방식으로 올리면 데이터 변환이 생겨 /r/n -> /n 으로 된다. 

2진 모드로 올릴때는 변환이 생기지 않아 윈도우에서 작성된 파일이 컴파일이 안되거나 script작성 된것이 동작 안할 수가 있다.


[sftp 전송 방식]

텍스트 방식 : 줄바꿈에 대한 변환이 일어남

2진 모드 : 줄바굼에 대한 변환이 일어나지 않음 ( 문제가 발생할 수 있다. )


반응형

ipcs, ipcrm 명령어


테스트 환경은 solaris10, centos에서 진행하였습니다.

ipcs를 통해서 OS에서 프로그램이 사용하는 IPC, 공유메모리, 세마포어를 현황을 파악 할 수 있다.

또한 불필요한 IPC나 공유메모리가 사용되면 ipcrm을 이용해 삭제도 가능하다.

여기서 IPC : QUEUE 데이터, 공유메모리는 OS상에 계속 해서 상주하여 여러 프로그램이 접근해서 데이터를 공유 할 수 있는 메모리 공간이라고 생각하면 된다. 

마지막으로 세마포어는 QUEUE나 공유메모리가 동시에 여러 프로그램에서 접근을 막기위해 사용되는 것이다.


  ipcs 사용법                                                                                 


[IPC 확인]

      ipcs -q


[공유 메모리 (Shared Memory) 확인 ]

      ipcs -m


[세마포어 확인 ]

     ipcs -s







  ipcrm 사용법                                                                                 


ipcs를 실행하면 

Shared Memory는 shmid, IPC는 msqid, Semaphore(세마포어)는 semid를 확인 할 수 있다.

해당 값을 이용하여 공유메모리나 ipc등을 삭제 할 수 있다.


[IPC 삭제]

      ipcrm -q [msgid]

      ex) ipcrm -q 21281


[공유 메모리 (Shared Memory) 삭제 ]

      ipcrm -m [shmid]

      ex) ipcrm -m 13181


[세마포어 삭제 ]

      ipcrm -s [semid]

      ex) ipcrm -s 41181



이상으로 ipcs, ipcrm 사용법에 대해 알아 보았다.


도움이 되셨나요?

반응형

tar(묶음, 압축) 명령어


테스트 환경은 solaris10, centos에서 진행하였습니다.

tar는 파일을 묶는 역활을 하는 명령어 이며 파일에 대한 압축을 하려면 compress를 이용하거나

tar의 옵션을 사용하여 gzip으로 압축이 가능합니다.

파일을 묶는 tar에 대한 사용법에 대해 가장많이 사용하는 것을 위주로 알아보기로 하겠습니다.

  tar 사용법                                                                                 


[tar 파일 묶는 방법]

      tar -cvf [묶은 후 파일명.tar] [묶을 파일1] [묶을 파일2] ..... 

(ex)      

      tar -cvf test.tar file1 file2


[폴더 채로 파일 묶는 방법]

     tar -cvf [묶은 후 파일명.tar] [묶을 폴더명]

(ex)      

      tar -cvf test.tar folder1



[tar 파일 푸는 방법]

      tar -xvf [tar 파일명.tar]

(ex)      

      tar -cvf test.tar



[tar 파일 확인 방법]

      tar -tvf [tar 파일명.tar]

(ex)      

      tar -tvf test.tar



[tar 파일 묶고 압축 하는 방법]

      tar -zcvf [묶은 후 파일명.tar.gz] [묶을 파일1] [묶을 파일2] ..... 

(ex)      

      tar -zcvf test.tar.gz file1 file2


[폴더 채로 파일 묶는 방법]

     tar -zcvf [묶은 후 파일명.tar.gz] [묶을 폴더명]

(ex)      

      tar -zcvf test.tar.gz folder1



[tar 파일 압축, 묶인 파일 푸는 방법]

      tar -zxvf [tar 파일명.tar.gz]

(ex)      

      tar -zxvf test.tar.gz




  tar 옵션                                                                               



 -c

 파일을 tar로 묶는다.

 -t

 tar 파일 확인한다.

 -p

 파일 권한 지정한다.

 -v

 묶거나 풀 때 과정을 화면 출력한다.

 -C

 경로를 지정 한다.

 -f

 파일 이름을 지정한다.

 -x

 tar 압축을 푼다.

 -z

 gzip으로 압축하거나 해제한다.


반응형

+ Recent posts