Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why awk script does not work on Mac OS but works on Linux?

Tags:

I have this awk script that I use to filter genes that are differentially expressed. I have a csv file that was created in R.

 #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

I started doing all my analyses on Mac OS now and the same command does not work. It also does not give any error message. It runs and nothing happens. I also had same problems with other sed commands, but it was easy to make new ones using awk.


Update: The MacOS X awk is version 20070501. However, the Ubuntu machine has mawk 1.3.3. The command awk --version wouldn't work. Had to use awk -W --version. So I think that is why it works on Ubuntu but was not working in MacOSX. So I downloaded mawk and installed it using fink and now the command works in MacOSX. Thanks for your help.

Update2: Actually the problem was not awk. Usually I create the csv files in R. Then I just run the script to do the filtering. Turns out that if I open the csv files in Excel or save an Excel file in csv format then the script does not work (tried several times with different delimiters). Apparently if you save a spreadsheet as .csv in MacOX (Excel 2011) and try to open it back in Excel it says that it is a SYLK file. There is a description of this on Microsoft website. If I use OpenOffice, it works just fine.

like image 625
degopwn Avatar asked Jun 20 '14 17:06

degopwn


People also ask

Are all the Linux commands the same for Mac?

In general, both will have the same core commands and features (especially those defined in the Posix standard), but a lot of extensions will be different. For example, linux systems generally have a useradd command to create new users, but OS X doesn't.

Why do Linux commands work the same on Mac?

The command line functionality on Mac and Linux are indeed similar as OS X has a flavour of UNIX (called Darwin) underneath the GUI that you see. The default shell on OS X is bash, so if you're familiar with that you will adjust nicely. On a Mac, the default command line application is Terminal.

Does awk work on Mac?

Awk is a pro terminal command for data processing built right into your Mac, but that's not all it is. It also has the power and capabilities of a general-purpose programming language. And while you won't be writing the next big app in awk, you get access to an incredible range of functionality within the language.

Is bash on Mac same as Linux?

As mentioned by others, bash is the same bash (other than the already noted versions) but Mac OS X uses a (mostly) BSD userland. Many of the standard system utilities have slightly different options or behave slightly differently. They're unfortunately too numerous to list here.


1 Answers

I also had the same problem. Installing gawk on OSX 10.11.2 through brew solved my issue.

~$ 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)
~$
like image 107
vikas027 Avatar answered Sep 22 '22 03:09

vikas027