シェルスクリプト上でファイルに含まれる行を抽出
以下のような２つのファイルtest1.txt（スペース区切り）, test2.txtがあり、  
test2.txtの文字列が含まれるtest1.txtの行を抽出したファイル（test3.txt）を生成するためのシェルスクリプトのコードをご教示いただくことはできないでしょうか。

■test1.txt  
AAA a b  
BBB b c  
CCC c d  
DDD d e  
EEE e f

■test2.txt  
AAA  
CCC  
EEE

■test3.txt  
AAA a b  
CCC c d  
EEE e f
grep の `-f` (`--file=FILE`) オプションを利用するのが良さそうです。

> -f FILE, --file=FILE パターンを FILE から 1 行 1 パターンとして読み込みます。 このオプションを複数回使ったときや、
> -e (--regexp) オプションと組み合わせたときは、与えられたすべてのパターンを検索します。  
>  空のファイルはパターンを含まないので、何にもマッチしません。

<https://linuxjm.osdn.jp/html/GNU_grep/man1/grep.1.html>

実行例：

```

    $ grep -f test2.txt test1.txt > test3.txt
    $ cat test3.txt
    AAA a b
    CCC c d
    EEE e f
    
```