Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 为什么awk脚本不能在Mac OS上运行,但可以在Linux上运行?_Macos_Awk_Filtering - Fatal编程技术网

Macos 为什么awk脚本不能在Mac OS上运行,但可以在Linux上运行?

Macos 为什么awk脚本不能在Mac OS上运行,但可以在Linux上运行?,macos,awk,filtering,Macos,Awk,Filtering,我有这个awk脚本,我用它来过滤差异表达的基因。我有一个在R中创建的csv文件 #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 &g

我有这个awk脚本,我用它来过滤差异表达的基因。我有一个在R中创建的csv文件

 #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
#获取DE基因的命令
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”}结果-RPKMs.csv
我现在开始在Mac OS上进行所有分析,但同样的命令不起作用。它也不会给出任何错误消息。它运行着,什么也没发生。我对其他sed命令也有同样的问题,但使用awk创建新命令很容易


更新: MacOS X awk的版本为20070501。然而,Ubuntu机器有mawk 1.3.3。命令awk--version无法工作。必须使用awk-W--版本。所以我认为这就是为什么它可以在Ubuntu上运行,但不能在MacOSX上运行。所以我下载了mawk并使用fink安装了它,现在这个命令在MacOSX中运行。谢谢你的帮助


更新2:实际上问题不是awk。通常我在R中创建csv文件,然后运行脚本进行过滤。结果表明,如果我在Excel中打开csv文件或以csv格式保存Excel文件,则脚本无法工作(使用不同的分隔符尝试了多次)。显然,如果您在MacOX(Excel 2011)中将电子表格另存为.csv,并尝试在Excel中打开它,则表明它是一个SYLK文件。Microsoft网站上有对此的描述。如果我使用OpenOffice,它工作得很好。

相同的命令名并不意味着它是相同的命令。大多数基本命令都有不同的实现,AWK就是一个例子,但几乎所有命令在BSD许可证中都有其等效的实现。您应该小心使用
gnused
bsdsed
,这也是一个陷阱

实际上,Linux通常使用
gawk
mawk

$ man awk
mawk - pattern scanning and text processing language
$ man awk
awk - pattern-directed scanning and processing language
Mac OS通常使用
nawk

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

有关AWK实现的更多信息,请参阅。

我也遇到了同样的问题。通过在OSX 10.11.2上安装
gawk
,解决了我的问题

~$ 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)
~$

尝试将
&
分组为
($14<0.05&&10<-1)和&$7>1
cat-vet“Results-RPKMs.csv | head-10
。您是否在每行末尾看到
^M$
?如果是,则
dos2unix结果RPKMs.csv
。否则,请编辑您的问题,以包括来自两台机器的
awk--verion
结果。祝你好运。我刚刚在MacOS X上用
BSD awk
version 20070501试用了你的脚本,它与
mawk
gawk
一样工作顺利。仅供参考,mawk是一个功能最少的awk,经过精简后可以比其他awk运行得快一点。你最好安装功能丰富的POSIX超集gawk。对我来说也很有用。