2014-02-16 60 views
0

嗨更換一個字,我要尋找一些幫助從大師的sed, 基本上我的git兩個文件桑達從另一個文件內容

First :- serial.txt 
second :- info.txt 

文件serial.txt具有獨特的信息。 和文件info.txt

"http://irequestedserver1?u=user:p=123" 
"http://irequestedserver2?u=user:p=123" 
and more and more 

我想與存儲在第一檔serial.txt的信息來代替用戶字。

回答

1

如果serial.txt文件包含一個名字,那麼你可以嘗試這樣的事:

$ cat serial.txt 
jaypal 

$ cat info.txt 
"http://irequestedserver1?u=user:p=123" 
"http://irequestedserver2?u=user:p=123" 

$ awk 'NR==FNR{a[$1];next}{for (name in a) {sub(/u=.*:/,"u="name":")}}1' serial.txt info.txt 
"http://irequestedserver1?u=jaypal:p=123" 
"http://irequestedserver2?u=jaypal:p=123" 
+0

偉大的作品像魅力 – user2901827

1

假設serial.txt包含的信息的一行是在info.txt用於所有行:

sed -r 's/\?u=[^:]+:/\?u='"$(tr -d '\n' < serial.txt)"':/' info.txt 
+0

感謝您的回覆,但它沒有讀取serial.txt中的內容,它的只是刪除用戶,並保留空白。 – user2901827

+0

@ user2901827您是否收到錯誤訊息? 'serial.txt'的確切內容和格式是什麼?是否有額外的前導/尾隨換行符?如果您交互式地運行'echo「$( mklement0

0

使用sed的

var=$(<serial.txt) 
sed -r "s/(u=user:)([^\"]*)/\1${var}/" info.txt 
相關問題