sed 命令打印从文件中存在的特定单词开始和结束的所有行

sed 命令打印从文件中存在的特定单词开始和结束的所有行

假设我有一个文件

File1 由两个单词组成

文件1:纸团队

现在我需要打印文件 M 的所有行,从单词 PAPER 开始到单词 Team

在两个单词之间打印的 sed 命令是 sed -n "/PAPER/,/TEAM/p" file2

但现在的情况是,我直接给出单词,但它应该每次都检查单词file1并 grep 从另一个单词开始到另一个单词结束的所有行file2

答案1

while read -r first second ; do 
    sed -n "/${first//\//\\\/}/,/${second//\//\\\/}/p" file2 ; 
done < file1

请注意,它${first//\//\\\/}用于替换可能的/符号以转义序列\/,否则结构可能会被破坏。

如果您完全确定 file1 中没有/符号,那么您可以仅使用$first$second

相关内容