Unix 将sed命令从linux移植到mac

Unix 将sed命令从linux移植到mac,unix,sed,porting,Unix,Sed,Porting,我试图在mac上运行bash分析脚本,但sed命令无法识别“~”。这个脚本在我的linux工作站上运行得非常好。我的剧本是这样的 #!/bin/bash sed -n '3~9p' file.txt | awk '{print $2}' > out.dat 当我在mac上运行此命令时,我得到了“sed:1:“3~9p”:无效的命令代码~”您可以尝试此awk而不是sed awk 'BEGIN {s=3;i=9} NR==s{s+=i;print}' file.txt 更直接的方法是 aw

我试图在mac上运行bash分析脚本,但sed命令无法识别“~”。这个脚本在我的linux工作站上运行得非常好。我的剧本是这样的

#!/bin/bash
sed -n '3~9p' file.txt | awk '{print $2}' > out.dat

当我在mac上运行此命令时,我得到了“sed:1:“3~9p”:无效的命令代码~”

您可以尝试此
awk
而不是
sed

awk 'BEGIN {s=3;i=9} NR==s{s+=i;print}' file.txt
更直接的方法是

awk 'BEGIN {s=3;i=9} NR==s{s+=i;print $2}' file.txt > out.dat

您可以在mac上使用GNU

brew install gnu-sed

那么它应该像linux一样工作(除非您计划分发sw…),为什么不安装另一个sed(作为替代方案)?所有未来的移植问题一次解决。是的,我现在就做。谢谢