如何从脚本运行grep并将输出存储在bash脚本的目标目录中的文件中

时间:2018-07-07 14:00:12

标签: linux bash shell sed grep

我正在尝试通过bash脚本过滤掉文件中的行。我可以通过运行命令

从脚本位置找到文件的路径
Fgff=`find $D -maxdepth 1 -type f -name "*.gff"`

我可以通过运行命令将列添加到找到的.gff文件中

   sed -i '1 s/$/\tsample/; 1! s/$/\t'${D##*/}'/' $Fpsi

但是,如果我尝试过滤文件并将输出写到同一文件夹中的另一个文件中,则它不起作用。

grep 'ENSG00000155657\|ENSG00000198947' $Fgff > "$Fgff$filtered"

我想知道grep为什么不起作用?

如何过滤{。{1}}中文件apple.gff中所有具有子字符串ENSG00000155657或ENSG00000198947的行并将其存储在./dira/dirb/apple.gff中?

谢谢

1 个答案:

答案 0 :(得分:-1)

假设$ Fgff包含正确的文件名,您的grep命令将完全按照您的要求进行搜索,搜索字符串'ENSG0000015565(7 \ | E)NSG00000198947',而您可能希望使用'(ENSG00000155657)\ |(ENSG00000198947)' 。