最近、私はこの仕事をする必要があります:
ステップ1
たとえば、file_A で一致する文字列を見つけると、一致する文字列は "ILikeeStackoverflow" になります。
ファイル_A
……
ILikeStackoverflow
「ILikeStackoverflow」の後の行
.......
ステップ2
この文字列「ILikeeStackoverflow」が存在する場合は、別の file_B (10 行未満) をこの file_A のその文字列の直後にコピーします。
したがって、このコピーを実行した後、file_A は次の形状のようになります。
ファイル_A
……
ILikeStackoverflow
Line_1_of_file_B
Line_2_of_file_B
……
Line_n_of_file_B
「ILikeStackoverflow」の後の行
.......
私のコードはこれですが、正しく動作しません (現在のディレクトリの file_A と file_B の両方)。
match_string="ILikeStackoverflow"
sed " /^$match_string/a"$file_B" " file_A
提案をありがとう!
編集 :
今のところ、行き詰まった理由はわかっていますが、コードを修正する方法がわかりません。アイデアがあれば引き続きコメントしてください。どうもありがとうございます。
問題は、文字列が別の行を占めている場合にのみ、sat のコードが機能することです。一致した文字列が長い文字列の一部にすぎない場合、彼のコードは機能しません。たとえば、fileA がこのような場合、コードは機能しません。
ファイル_A
……
/テスト/開始/ILikeStackoverflow/テスト/終了
「ILikeStackoverflow」の後の行
.......
実際、私の「index.html」では、一致する文字列は「5000s-IntW300」ですが、一致した文字列を含む行は次のとおりです。
/blue-ccd-data/DAMIC_SNOLAB_RUN1/5000s-IntW300-OS
それを修正するための提案はありますか?
どうもありがとうございました!
編集2:
実際には、一致した文字列行よりも 1 行後の場所に fileB をコピーしたいと考えています。たとえば、実際の位置は次のようになります。
ファイル_A
……
/テスト/開始/ILikeStackoverflow/テスト/終了
この行には重要な情報が含まれているため、fileB をここにコピーしないでください。
これは、fileB の正確な行をコピーする必要があります。
.......