我有一个命令和管道,如下所示,
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
中的任何信息任何人都知道有什么不同吗?
答案 0 :(得分:2)
很可能sh不是bash - 以bash test.sh
运行 - $'\t'
是bash,可能无法在其他shell中运行 - awk -F'\t'
同样适用