awk는 기능이 무척 다양하기에 쉘에서 동작함에도 불구하고 'awk는 프로그래밍 이다!'라고 말하는 전문가 들이 많다.

그래서 이번강의 부터 재미있는 awk 프로그램을 활용하는 방법들에 대해 차근차근 알아 보도록 하자.

1. awk로 텍스트 파일의 원하는 열만 출력 하기

우선 텍스트 파일은 이렇게 구성 되어 있다고 가정하자.


file.txt

fire born ask
letter land smile



해당 파일의 3번째 열을 출력한다.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>


root@test:~$ awk '{print $3}' file.txt


ask
 smile

-> 파일의 첫번째 줄 3번째열에 해당 되는 'ask' 단어가 출력 되었다.





응용하여 행과 열을 동시에 출력해 보자.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 주석


root@test:~$ head -2 file.txt |tail -1 |awk '{print $2}'


land

-> 파일의 두번째 행의 2번째 열인 'head'를 출력한다.




 

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.



리눅스에서 아주 쉬운 콘솔에서의 환경변수에 대해서 알아보자.

'환경변수' 라는 것은 그럴듯하게 어렵게 들릴수도 있겠지만 매우 쉬우며 어렵지 않다.

그냥 단순하게 환경의 조건을 정하는 것이다.

어떤 운영체제를 다룬다면 그 체제의 왕은 절대적으로 여러분이다.

그렇다. 여러분이 왕이 되어서 어떤 여러가지 문자를 함축적으로 정하는 것이다.

예를 들어,

"she=my love" 라고 정하고 싶다면 보통 프로그래밍 에서는 변수를 이렇게 설정한다.

she="my love"

그냥 바로 이거다. 이것이 변수라는 것이다.

얼마나 쉬운가?

여기에서 변수에 환경이란 말을 더하여 콘솔에서의 '환경변수'를 절대적으로 정한다고 한다면 터미널에 그저 'export'를 앞에 갖다 붙히기만 하면 되는 것이다.

자 그러면 터미널에서 그것을 한번 시험해 보도록 하자.




// 환경변수를 지정한다.


root@test:~$ export she="my love"



// 지정된 환경변수를 불러온다.


root@test:~$ echo $she

my love

-> 'she'에 대한 환경변수가 출력 되는데 성공했다.





보시는 바와 같이 "my love" 라는 글이 출력 되는 것을 볼 수가 있다.

그리고 중요한 것은 그것을 불러오는 명령에서 she 앞에 '$'를 붙였다는 것이다.
'$' 문자는 유닉스 시스템의 쉘 스크립트 에서 변수를 불러오는 매우 중요한 담당 역할을 하는 문자 이다.

하지만 이와 같은 단순한 환경변수 지정은 여러분이 연 그 터미널에서만 변수로 동작하며 다른 터미널 콘솔 에서는 변수로 지정 되지 않는다.

그렇다면 변수를 계속 유지되도록 전역설정을 하려면 어떻게해야 할까?

이는 '$/HOME/.bashrc' 파일에 해당 스크립트를 입력하여 처리가 가능하다.
($HOME = /home/user)


// 먼저 만일을 대비해서 bashrc의 백업을 만든다. (물론 부팅시를 기준으로 한 백업 파일인 '$HOME/.bashrc~'가 존재 한다.) 


root@test:~$ cp ~/.bashrc ~/.bashrc.bak



// .bashrc 파일에 추가할 환경변수를 삽입 한다.


root@test:~$ echo 'export she="my love"' >> ~/.bashrc



// 재부팅 할 필요 없이 '~/.bashrc' 파일의 소스를 로드한다.


root@test:~$ source ~/.bashrc



// 지정된 환경변수를 불러온다.


root@test:~$ echo $she

my love


-> 'she'에 대한 환경변수가 출력 되는데 성공했다.




이와 같은 환경변수는 전역 bash 프로그래밍에서 활용되며 여러 소프트웨어들이 이러한 환경변수를 활용한다.
대표적으로 많이 사용되는 환경변수들은 다음과 같다.

$HOME     사용자의 홈 디렉토리
$PATH     실행 파일 경로
$LANG     환경변수에 설정된 언어
$PWD         사용자의 현재 작업중인 디렉토리
$SECONDS     해당 콘솔이 실행된 경과를 초 단위 시간으로 나타냄
$SHLVL     사용되는 쉘 레벨
$SHELL     사용되는 쉘 이름($BASH와 같게 나옴.)
$PPID     부모 프로세스의 PID
$BASH     BASH 실행 파일 경로
$BASH_VERSION     설치된 BASH 버전
$MAIL     환경변수에 설정된 메일주소
$OSTYPE     운영체제 종류
$TERM     현재 사용되는 터미널 이름
$HOSTNAME     호스트 전체 이름
$HOSTTYPE     시스템의 아키텍처
$MACHTYPE     PC의 아키텍쳐와 운영체제표시
$LOGNAME     로그인 사용자 이름
$UID         사용자 UID
$EUID     su 명령에서 사용하는 사용자의 유효 아이디 값(UID와 EUID 값은 다를 수 있음)
$USER     사용자의 이름
$HISTFILE     history파일의 경로
$DISPLAY     현재 사용되는 X 디스플레이 이름

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


+ Recent posts