ファイルがあるとしましょう。
File1は2つの単語で構成されています。
ファイル1:紙チーム
これで、PAPERという単語から始まり、Teamという単語で終わるファイルMのすべての行を印刷する必要があります。
2 つの単語の間を印刷する sed コマンドは次のとおりです。 sed -n "/PAPER/,/TEAM/p" file2
ところが今は私が単語を直接与えるのに毎回単語を確認してfile1
別の単語から始まって別の単語で終わる行をすべて捕まえなければならない状況だfile2
。
答え1
while read -r first second ; do
sed -n "/${first//\//\\\/}/,/${second//\//\\\/}/p" file2 ;
done < file1
${first//\//\\\/}
可能な/
シンボルをエスケープシーケンスに置き換えるために使用されます\/
。そうしないと、構造が壊れる可能性があります。
file1にシンボルがないと確信している場合は、andを/
使用できます。$first
$second