sedコマンドは、ファイル内の特定の単語で始まり、終わるすべての行を印刷します。

sedコマンドは、ファイル内の特定の単語で始まり、終わるすべての行を印刷します。

ファイルがあるとしましょう。

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

関連情報