別のファイルのパターン(タグ)の前にあるファイルの内容を挿入するには?

別のファイルのパターン(タグ)の前にあるファイルの内容を挿入するには?

File1コンテンツ:

line1-file1      "1" 
line2-file1      "2"
line3-file1      "3" 
line4-file1      "4" 

File2コンテンツ:

line1-file2     "25"  
line2-file2     "24"  
Pointer-file2   "23"  
line4-file2     "22" 
line5-file2     "21"

Perl/shell スクリプトが実行された後、File2内容は次のようになります。

line1-file2     "25"  
line2-file2     "24" 
line1-file1      "1" 
line2-file1      "2"
line3-file1      "3" 
line4-file1      "4" 
Pointer-file2   "23" 
line4-file2     "22" 
line5-file2     "21"

File1つまり、File2「Pointer」を含む行の前にinの内容を貼り付けます。

ベストアンサー1

このsedユーティリティには修正操作を実行する機能があります。

sed -i -e '/Pointer/r file1' file2

しかし、これはあなたをコンテンツの上の行ですfile1。簡単に言えば、遅延ライン出力です。

sed -n -i -e '/Pointer/r file1' -e 1x -e '2,${x;p}' -e '${x;p}' file2 

GNUの使用sed:

sed '/Pointer/e cat file1' file2

~によると手動のためe [command]

rコマンドとは異なり、このコマンドの出力はすぐに印刷されます。 r コマンドは、現在の期間が終了するまで出力を遅延します。

おすすめ記事