2014-06-20 3 views
7

나는 차별적으로 표현 된 유전자를 필터링하는 데 사용하는 awk 스크립트가 있습니다. 나는 지금 맥 OS에 내 모든 분석을하기 시작하고 같은 명령이 작동하지 않습니다 R.awk 스크립트가 Mac OS에서는 작동하지 않지만 Linux에서는 작동하는 이유는 무엇입니까?

#Command to get DE genes 
awk -F '\t' '$14 < 0.05 && $10 < -1 && $7 > 1 { print > "Genes-Down.csv" } 
      $14 < 0.05 && $10 > +1 && $8 > 1 { print > "Genes-Up.csv" }' Results-RPKMs.csv 

에서 만든 CSV 파일이 있습니다. 또한 오류 메시지도 표시하지 않습니다. 실행되고 아무 일도 일어나지 않습니다. 다른 sed 명령에서도 같은 문제가 있었지만 awk를 사용하여 새 명령을 작성하는 것은 쉽습니다. 감사합니다.

업데이트 : MacOS X awk는 20070501 버전입니다. 그러나 우분투 컴퓨터는 1.3.3 버전입니다. awk --version 명령은 작동하지 않습니다. awk -W --version을 사용해야했습니다. 그래서 우분투에서 작동하지만 MacOSX에서는 작동하지 않는 이유라고 생각합니다. 그래서 mawk를 다운로드하고 fink를 사용하여 설치했고 이제 명령은 MacOSX에서 작동합니다. 당신의 도움을 주셔서 감사합니다.

업데이트 2 : 실제로 문제는 awk이 아니 었습니다. 일반적으로 R에서 csv 파일을 만듭니다. 그런 다음 필터링을 수행하기 위해 스크립트를 실행합니다. Excel에서 CSV 파일을 열거 나 Excel 파일을 CSV 형식으로 저장하면 스크립트가 작동하지 않습니다 (다른 구분 기호로 여러 번 시도한 경우). 분명히 MacOX (Excel 2011)에서 .csv로 스프레드 시트를 저장하고 Excel에서 다시 열려고하면 SYLK 파일이라고합니다. Microsoft 웹 사이트에서 이에 대한 설명이 있습니다. OpenOffice를 사용하면 잘 작동합니다. 최고.

+0

그룹화 시도'&&'$ (14) <0.05 && $ (10) < -1) && $7 > 1' –

+3

'고양이 -vet "결과-RPKMs.csv ('로 | 당신은에서 '^ M $'를 참조 머리 -10' 마십시오. 각 라인의 끝이 맞습니까? 그렇다면'dos2unix Results-RPKMs.csv' 그리고 두 머신의'awk --verion' 결과를 포함하도록 질문을 수정하십시오. 행운을 빌어 요. – shellter

+1

방금'BSD awk' 버전 20070501을 맥 오에스 X에서 사용했고'mawk'와'gawk'와 마찬가지로 문제없이 작동했습니다. – Scrutinizer

답변

8

동일한 명령 이름이 동일한 명령임을 의미하지 않습니다. 대부분의 기본 명령은 다른 구현을 가지고 있습니다. AWK가 한 예이지만, 거의 모든 GNU core utils은 BSD 라이센스와 동등합니다. GNU sedBSD sed을 조심해야합니다. 역시 함정입니다.

는 실제로 리눅스는 일반적으로 gawk 또는 mawk 사용

$ man awk 
mawk - pattern scanning and text processing language 

맥 OS는 일반적으로 nawk 사용

$ man awk 
awk - pattern-directed scanning and processing language 

는 AWK 구현에 대한 자세한 정보에 대 한 this page를 참조하십시오.

3

나는 또한 동일한 문제가있었습니다. OSX 10.11.2에서 brewgawk을 설치하면 문제가 해결됩니다.

~$ brew install gawk 
~$ gawk --version | head -n 1 
GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.4-p1, GNU MP 6.1.1) 
~$ 
+1

나를 위해 일했습니다. –

관련 문제