シェルコマンドを使用してあるファイルから別のファイルに行を挿入するには?

シェルコマンドを使用してあるファイルから別のファイルに行を挿入するには?

file1の最初から8行を書きたいですfile2

鉱山にはfile1次の行が含まれています。

$BQ  
{ VOL       @home    }  
database    daba  
relation    tcdeatid  
copy           1  
{ version        0 }  
opendb  
clear
# other stuff

鉱山にはfile2次の行が含まれています。

.lruno := 72  
.infno := 1    
writedb     
clear

私の出力ファイルは次のとおりです

$BQ  
{ VOL       @home    }  
database    daba  
relation    tcdeatid  
copy           1  
{ version        0 }  
opendb  
clear  
.lruno := 72  
.infno := 1    
writedb       
clear

答え1

標準ツールを使用してこれを行うことができます。

そしてpaste

paste -sd'\n' file1 file2

そしてsed

sed p file1 file2

答え2

それは次のとおりです。

head -n8 file1 | cat - file2 > file2."$$" && mv file2."$$" file2

答え3

cat file1 file2 > output_file

Catは接続の略です。これがまさにあなたがやりたいことです。結果をfile1に保持するには、最後に追加するだけです。

cat file2 >> file1

最初の場合、output_fileは切り捨てられます(使用済み>)。 doubleを使用すると追加されます(>>

答え4

そしてed

ed file2 <<END
0r file1
w
q
END

「0」行で「file1」ファイルを読み込み、保存して終了します。

一行で:printf "%s\n" "0r file1" w q | ed file2

関連情報