终端v.s.中的命令bash.sh

时间:2016-08-23 09:18:24

标签: linux bash awk

我有一个命令和管道,如下所示,

cat $txt | grep -v "\/\*" | awk -F$'\t' '{if ($16=="N") print $0}' | awk -F$'\t' '{if ($48=="Y" || $48==".") print $7}'

此命令在终端中运行良好

然而, 当我在bash.sh中包含命令时,它根本不起作用。 我创建了一个test.sh 该脚本看起来像这样:

#!/bin/bash     
txt=file.txt
cat $txt | grep -v "\/\*" | awk -F$'\t' '{if ($16=="N") print $0}' | awk -F$'\t' '{if ($48=="Y" || $48==".") print $7}' >> output.txt

然后,我简单地使用

sh test.sh

它生成了一个output.txt,但这不是output.txt

中的任何信息

任何人都知道有什么不同吗?

1 个答案:

答案 0 :(得分:2)

很可能sh不是bash - 以bash test.sh运行 - $'\t'是bash,可能无法在其他shell中运行 - awk -F'\t'同样适用