使用 "sed command" 在多输出文件中打印由 "F served.." 开始的行

print line started by "F served.." in a multiple output file using "sed command"

我开发了一个脚本,使用 sed 从给定的多行文件中检索以文本 F servedM.. 开头的行:

我在 Red Hat 7.4 上使用 ksh。

下面给出我试过的代码。

#!/bin/ksh
input.txt=
while read line
do
sed "/^F servedMyd/p" $input.txt >> output.txt
sed "/^F servedPuid/p" $input.txt >> output.txt
done < $input.txt
exit 0

使用这段代码,我没有得到任何输出。我希望有一个具有以下结构的输出文件:

不需要脚本,一行sed就足够了:

sed -n '/^F served\(My\|Pui\)d/p' foo > bar

grep:

grep '^F served\(My\|Pui\)d' foo > bar

或者:

grep -E '^F served(My|Pui)d' foo > bar