awk 사용법


Blast를 수행 시 -m 8을 하면 자료 뽑아내기가 쉬운 것을 알고 있다.
근데 리눅스에서는 awk라는 명령어를 사용하여 별도의 코딩을 하지 않고
일정 값 이상/이하의 결과들만 골라서 볼 수 있다.
-biodb의 wiki에 정리해둔 것이 있었는데...;;;

구글 뒤져보니 본인이 원하는 기능의 awk 기능을 잘 설명해 놓은 것이 있어서
그대로 옮겨보도록 한다. ㅋ

출처: :+:하늘을 닮은 호수:+:

-m 옵셥에서 8값을 선택한 결과 파일 (blastout.file) 에서 score가 100 이상의 결과들만 뽑길 원하는 경우
> awk '$12 > 100 { print $2 }' blastout.file

본 문장을 응용하면 결과값에 특정 문자열만 들어가 있는 것을 포함/제외 하고
출력하기, 결과값이 중복된 것이 있으면 sort를 이용하여 제거 할 수도 있으니
참 간편하지요? ;;;

그걸 몰랐던 학부 시절 때 하나하나 python으로 삽질하던 기억을 하면;; 아놔;;;
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/12/09 22:00 2009/12/09 22:00
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/259

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/259

Leave a comment

uniq

참조 wiki's uniq

uniq는 텍스트 파일내에 중복된 내용의 행이 연속으로 있으면 중복없이 하나의 행으로 만들어주는 Unix 유틸리티이다. uniq는 일종의 필터 프로그램(filter program)으로 보통 sort뒤에 덧붙여 사용된다. 또한 -d옵션을 적용하여 중복되는 행만을 볼 수 있거나, -c 옵션을 적용하여 중복행의 중복횟수를 출력할 수 있다.

한 예로 어떤 파일에 중복되는 내용의 행을 정렬하고 중복횟수를 세어 오름차순 정리한다면 :

sort file | uniq -c | sort -n

위와 같이 적용하면 된다.

쉘 스크립트(shell script)에서 파이프라인을 삽입하여 uniq를 sort와 함께 실행하는 것이다. 여기서 주의해야 할 점은 uniq는 파일 내용이 미리 정렬되어 있는 상태에서 실행가능하다. 만약 다음과 같은 내용으로 구성된 fruits.txt파일이 있다고 하자.

orange
apple
apple
orange
orange
apple

여기서 바로

uniq -c fruits.txt

라고 실행시키면 결과는 다음과 같다.

1 orange
2 apple
2 orange
1 apple

정렬이 이루어지지 않은 상태에서 uniq를 적용하였기에 위와 같은 결과가 얻어지는 것이다.

참고로 만약

sort -u fruits.txt

를 실행시키면

apple
orange


 

sort fruits.txt | uniq -c

를 실행시키면

3 apple
3 orange


위와 같은 결과가 나오게 된다. 이것은 파일내용을 정렬시켜 중복되는 것을 하나로 표현하는 것이다. 즉, 결론지으면 uniq는 파일에 전체적으로 분산된 중복을 한번에 잡아내지 못한다. 따라서 정렬하여 순차적으로 만든 뒤에 적용한다.

 

 

옵션 보기

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/05/25 12:26 2009/05/25 12:26
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/139

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/139

Leave a comment

iptables 사용



내 책상위에 있는 리눅스에 아파치 가동시키고
내 책상위에 있는 윈도우에서 접속하려니 안돼는거 가지고
주임님이랑 30분정도 쌩쑈했는데...

결국은 80포트 닫혀있었다는거..;;

구글링해서 iptables 명령어 이용해서 하다가 도리어 localhost도 막혀서 잠시 당황..

그냥 gui 도구를 이용해서 80 포트 오픈~ ^^

그리고 나중에 ssh 통해서 할 것을 대비해서 리눅스에서 포트 열려면
어떻게 해야 하는지 짤막 로그.. ^^


vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

위의 양식과 같이 추가해주시고 저장하고 나와서
살포시 iptables 재시작
/etc/rc.d/init.d/iptables restart

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/04/09 20:14 2009/04/09 20:14
, , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/113

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/113

Leave a comment

하드웨어 및 모듈 로그 명령어


리눅스 설치 시 하드웨어 문제 발생시
사용할 만한 명령어들..

dmesg: 부팅하면서 남긴 모든 로그 보여줌
lspci: 어떤 하드웨어들이 인식되었는지 확인
lsmod: 하드웨어 관련 모듈중 어떤 모듈들이 올라와 있는 보여줌

snp 서버 셋팅하면서 엄청 많이 친 명령어.. ㅋㅋ
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/03/17 21:20 2009/03/17 21:20
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/90

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/90

Leave a comment

좀비 프로세스 죽이기


#ps -ef|grep defunct | awk '{print $3}' | xargs kill -9

프로세스중에 defunct라는 문자열이 포함된 프로세스를 확인
 awk로 세번째 컬럼(프로세스 id 캡쳐)
그다음에 프로세스 id로 kill하는 거겠죠? ^^
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/03/03 13:19 2009/03/03 13:19
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/77

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/77

Leave a comment

Apache + Tomcat


리눅스에서 아파치 HTTP서버와 Tomcat6 설정

아파치, 톰캣 연동하기

리눅스에서 mod_jk를 이용한 아파치, 톰캣 연동

리눅스에서 modproxy를 이용한 아파치, 톰캣 연동



대용량 웹 서비스를 위한 아파치, 톰캣 연동


Mac에서 둘 연동시키는 것 해보는중..;;
근데 역시나 잘 안됨.. ㅎㅎ
fedora10에서 httpd 2.2.10/ Tomcat 6.0.18.0 테스트 하고 있음.. ㅋㅋ
httpd는 기본으로 설치되는거 사용하고 있고,
tomcat은 yum을 설치해서 둘 연동시키는중..;;
원래 쉬워야 되는거아냐? ㅋㅋ
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/02/19 11:27 2009/02/19 11:27
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/74

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/74

Leave a comment

리눅스의 커널 버전 확인


리눅스 배포판 버전 확인 (레드햇 계열인듯, 페도라에서 가능)
# less /etc/redhat-release

리눅스 커널 버전 확인
# uname -a
# uname -v
# uname -r

리눅스에 설치된 모듈정보
# ls /lib/modules

RPM으로 커널 업데이트
# wget 를 이용해 커널을 다운로드
# rpm -Uvh 커널명




크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/01/26 01:18 2009/01/26 01:18
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/68

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/68

Leave a comment

Xeon 5430 조립기

Xeon 5430 x 2
ASUS DSEB-DG
SAMSUNG 4GB-ECC-FBDimm x 6
WD 1TB * 7
Raptor 300G (10000rpm)
Fedora 10 (64bit)
의 조합으로 분석용 서버 조립중 쩔 애먹임..

일단 DSEB-DG의 Marvell 88SE6145 SATA 컨트롤러가
4개묶음으로 2개가 달렸다는거 -> 하나의 RAID구성할때 각각 4개씩만 가능
-7개를 묶어야 되는데 말이다..;;

더 어이없는 상황은 그냥 테스트로 묶었는데
OS에서 인식을 안한다는..;; 이거 모 어쩌라는건지..
일단 설 연휴동안 Fungus 끝내놓고..;; 에공..
쫌 쉬엄쉬엄 하려니 안되는군.. ㅎㅎ

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/01/24 15:38 2009/01/24 15:38
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/67

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/67

Leave a comment

Shell에서 Substring

Operator: #,##,%,%%

ㅇ네가지의 연산자로 문자열을 조작 가능

#: 구분자 앞쪽(왼쪽)의 문자열(단어)을 삭제
(풀이) 문자열 앞쪽에서부터 문자열을 하나씩 삭제하는데 첫번째 구분자 앞까지 삭제
$x = "This is my test string."
$echo ${x#* }
      is my test string.

##: 마지막 구분자 앞쪽(왼쪽)의 문자열(단어)을 삭제
(풀이) 문자열 앞쪽에서부터 문자열을 하나씩 삭제하는데 마지막 구분자 앞까지 삭제
$x = "This is my test string."
$echo ${x##* }
      string.

%: 마지막 구분자 뒤쪽(오른쪽)의 문자열(단어)을 삭제
(풀이) 문자열 뒤쪽에서부터 문자열을 하나씩 삭제하는데 첫번째 구분자 앞까지 삭제
$x = "This is my string."
$echo ${x% *}
      This is my test

%%: 구분자 뒤쪽(오른쪽)의 문자열(단어)을 삭제
(풀이) 문자열 두쪽에서부터 문자열을 하나씩 삭제하는데 마지막 구분자 앞까지 삭제
$x = "This is my test string."
$echo ${x%% *}
      This

본인이 필요한 Command
※문자열 안에 "."뒤에 문자들만 삭제
$x=100093.seq
echo ${x%.*}
      100093
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/01/09 18:26 2009/01/09 18:26
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/63

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/63

Leave a comment

For loop

리눅스의 shell에서 for 문 돌리기

for ((  i = 0 ;  i <= 5;  i++  ))
do
echo "Welcome $i times"
done

i를 0에서 5까지 출력.

2009년 1월 7일 update
위와 같은 방법으로 0에서 100까지 5씩 증가하는 값 찍기

for ((  i = 0 ;  i <= 100;  i=i+5  ))
do
echo "Welcome $i times"
done


크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by gwlee

2009/01/07 19:02 2009/01/07 19:02
,
Response
0 Trackbacks , 0 Comments
RSS :
http://thegreatgoodplace.com/tt/study/rss/response/57

Trackback URL : http://thegreatgoodplace.com/tt/study/trackback/57

Leave a comment

블로그 이미지

gwLee's Study story

- gwlee



Site Stats

Total hits:
49737
Today:
50
Yesterday:
80