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

标签 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 不起作用?

如何过滤 ./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/

相关文章:

c# - 使用 SHFILEINFO 获取文件图标

linux - 连接两台服务器并获取数据

linux - ps -e、rss 与 vsz 的结果

linux - 计算文件中 2 个字符串之间匹配的行数

regex - 这个 BASH shell 脚本摘录有什么作用?

bash - 如何在 Fish shell 中切换 Debug模式?

bash - 使 socat 逐行写入(TCP 或 UNIX)套接字以收集日志

linux - 如何使用shell脚本删除文件中的某些单词?

linux - 为什么 dd 命令将虚拟文件大小限制为 2GB?

linux - Gnome - 确定键盘布局