我想用另一个文件中的数据替换文件的部分数据。
假设file1
有如下所示的数据,并且file2
有一些我想存储从起始字和结束字开始的替换file1
数据的数据。file2
// +++ CUSTOMIZATION SETTINGS START +++
// +++ CUSTOMIZATION SETTINGS END +++
文件1
ANJALI
NISHA
// +++ CUSTOMIZATION SETTINGS START +++
WE WILL BE ON LEAVE FOR TODAY
// +++ CUSTOMIZATION SETTINGS END +++
PREETI
MONA
文件2
MANISH
MADHVI
// +++ CUSTOMIZATION SETTINGS START +++
WELCOME ALL
// +++ CUSTOMIZATION SETTINGS END +++
NISHA
TUSHAR
文件 3 作为我们想要的输出
ANJALI
NISHA
// +++ CUSTOMIZATION SETTINGS START +++
WELCOME ALL
// +++ CUSTOMIZATION SETTINGS END +++
PREETI
MONA
答案1
解决方案awk
:
$ awk -v pat="$(awk '/SETTINGS START/,/SETTINGS END/' file2)" -v p=1 '
/SETTINGS START/{p=0};p;/SETTINGS END/{print pat;p=1}' file1 > file3
ANJALI
NISHA
// +++ CUSTOMIZATION SETTINGS START +++
WELCOME ALL
// +++ CUSTOMIZATION SETTINGS END +++
PREETI
MONA