2015-11-05 94 views
1

我有一個文件夾中的一些文件與該文本信息:如何在bash合併兩個參數(使用pcgrep或其他)

To verify that you own [email protected], please click here. 
You may be asked to enter this confirmation code: 54373 

如何合併這些信息,並得到僅此於正式的電子郵件:代碼。其結果是,我想有這樣的:

[email protected]:54373 

我試圖用這樣的:

pcregrep -oM '(?<=To\ verify\ that\ you\ own\)[\w\W]*?(?=,\ please\ click\ here\.)' * | pcregrep -oM '(?<=You\ may\ be\ asked\ to\ enter\ this\ confirmation\ code:\).*' * 

但我只有代碼,而我的格式。

回答

0

由於:

$ grep -o '[^ ]*@[^,]*' a 
[email protected] 
$ awk -F: 'END{print $NF}' a 
54373 

你可以說:

email=$(grep -o '[^ ]*@[^,]*' file) 
number=$(awk -F: 'END{print $NF}' file) 

然後

echo "$email:$number" 
+0

我可以做到這一點,如果我在文件夾中(沒有之一)有很多文件?我嘗試,但這是行不通的(因爲,在文件中有很多電子郵件,但我只需要這個文本的中間:「要驗證您自己的[email protected],請點擊這裏。」和 最後一個號碼這個文本):「你可能會被要求輸入這個確認碼:54373」 – Complike

+0

@Complike如果有一個覆蓋所有可能情況的[mcve]會很有用,這樣我們可以更好地幫助你。 – fedorqui

相關問題