所以我正在使用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
当我逐个浏览文件A中的每一行时,此行有效。
grep -n "\A\,\>\{x;p;}" B.txt
但是当我这样做时:
While read i; do grep -n "\$i\,\>\{x;p;}" B.txt >> newfile.txt; done < A.txt
我收到此错误:
grep: invalid repetition count(s)
我在做什么错了?
答案 0 :(得分:0)
使用grep
,您可以使用:
/bin/grep -A1 -Ff fileA fileB
>A
abcde
>B
efghi
-- <--- produces separators
>F
yz123
或者用awk:
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