我正在尝试通过 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 不起作用?
如何过滤 ./dira/dirb/apple.gff
文件 apple.gff 中包含子字符串 ENSG00000155657 或 ENSG00000198947 的所有行并将其存储在 ./dira/dirb/applefiltered.gff
中?
谢谢
最佳答案
假设您的 $Fgff 包含正确的文件名,您的 grep 命令将完全按照您的要求执行,搜索字符串“ENSG0000015565(7\|E)NSG00000198947”,而您可能想要“(ENSG00000155657)\|(ENSG00000198947)”。
关于linux - 如何从脚本运行 grep 并将输出存储在 bash 脚本的目标目录中的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51223918/