2016-02-11 103 views
-3

最簡單的做法是什麼?如何將文本中的文本插入到另一個文本文件的特定列/行中?

文本文件1:

survey: 
product: 
epsg: 
crstxt: 
zunit: 
surfaceunit: 

文本文件2:

product name 1 

輸出:

survey: 
product: product name 1 
epsg: 
crstxt: 
zunit: 
surfaceunit: 
+0

Linux和批處理文件?你確定? – Biffen

+0

什麼決定哪條線被更改?第一個字? – Biffen

+0

比芬,我不確定選哪個標籤。只有「產品:」行將被更改。文本文件1(調查,epsg,crstxt等)的其餘部分將保持不變。我正在努力擴展我的問題,因爲我對此進行了更多的研究。抱歉含糊不清。 – c47v3770

回答

1
sed 's/^product:/& '"$(< file2)"'/' file1 

或具有兩個SEDS和bash的Process Substitution

sed -f <(sed 's/.*/s|^product:|\& &|/' file2) file1 

輸出:

 
survey: 
product: product name 1 
epsg: 
crstxt: 
zunit: 
surfaceunit: 

file2中必須不包含特殊字符(例如斜線,\ 1或&)!

+0

感謝您的幫助Cyrus。我一直在努力在右欄中獲取產品名稱。這有幫助! – c47v3770

+0

賽勒斯,是否可以將產品名稱插入多個「文本文件1」文件?我將有一個帶有15個產品名稱的文本文件和一個帶有「文本文件1」內容的文本文件。我在想一些腳本是必需的? – c47v3770

+0

使用GNU sed:'sed -i -f <(sed's /.*/ s |^product:| \&&| /'file2)file1 file3 file4 file5'這個編輯你的file1 file3 file4 file5「in place」 。 – Cyrus

相關問題