Bash grep:使用while循环时重复计数无效

Bash grep:使用while循环时重复计数无效,bash,grep,fasta,Bash,Grep,Fasta,所以我使用MacOS命令行,有两个文件 文件A.txt A B F 文件B.txt >A abcde >B efghi >C jklmn >D opqrs >E tuvwx >F yz123 我希望它在文件a.txt中经过一个while循环,只打印文件B.txt中相应的标题和内容 >A abcde >B efghi >F yz123 当我单独浏览文件中的每一行时,这一行就起作用了。 grep-n“\A\,\>{x;p;}”B.txt 但

所以我使用MacOS命令行,有两个文件

文件A.txt

A
B
F
文件B.txt

>A
abcde
>B
efghi
>C
jklmn
>D
opqrs
>E
tuvwx
>F
yz123
我希望它在文件a.txt中经过一个while循环,只打印文件B.txt中相应的标题和内容

>A
abcde
>B
efghi
>F
yz123
当我单独浏览文件中的每一行时,这一行就起作用了。
grep-n“\A\,\>{x;p;}”B.txt

但当我这么做的时候: 阅读时
;dogrep-n“\$i\,\>\{x;p;}”B.txt>>newfile.txt;完成

我得到这个错误:
grep:重复计数无效


我做错了什么?

使用
grep
您可以使用:

/bin/grep -A1 -Ff fileA fileB 
>A
abcde
>B
efghi
--               <--- produces separators
>F
yz123

谢谢你,hek2mgl!有没有办法修改它以包含不止一行的内容<代码>>A abcdefghi
jklmopqrs
jklmopqrs在新线路上的位置?有多少线路?各不相同。有些会有10行的模式,有些只有5行。@tripleee让我们开始一个项目,以便方便地处理fasta文件。除了grep、sed和awk之外,这种格式似乎在没有其他工具的情况下被广泛使用。考虑到它的用途,这实际上让(我)感到害怕:)这真的是
grep
grep-n“\A\,\>{x;p;}”B.txt
看起来应该是
sed-n“\A\,\>{x;p;}”B.txt
Hi@tripleee-成功了!和@hek2mgl-这将非常有用。寻找答案和我的谷歌搜索一样好。非常感谢你们两位的帮助。@hek2mgl问题不在于缺少工具,他们有BioPerl、BioPython等。。。只是生物技术人员通常只是在学习基本的U*x。
awk 'NR==FNR{a[$0];next}{sub(/^>/,"")} $0 in a {print ">"$0;p=1;next} p{print;p=0}' fileA fileB 
>A
abcde
>B
efghi
>F
yz123