假设我有一个文件
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
。