2013-09-21 52 views

回答

5

試試這個awk的一個班輪:

$ awk '$2=$2"@gmail.com"' file 
a [email protected] n 
d [email protected] h 
e [email protected] y 
+4

+1有趣的是,有些人會看sed的替代多麼簡單,這是怎樣複雜的是,然後呢,因爲選擇的sed命令某些版本的sed支持'-i'。唉....無論如何 - 新版本的'gawk'支持'-i inedit'來更改原始文件,如果這是一個考慮因素。 –

2

使用sed inline

sed -i.bak 's/\(^[^ ]* *\)\([^ ]*\)\(.*\)$/\1\[email protected]\3/' file 

這將保存在原文件本身的變化。

+0

請解釋正則表達式 – ALBI

+1

'[^] *'表示匹配除空格以外的任何內容,'。*'表示任意長度爲0或更長的文本。 – anubhava

+1

'sed -r's/^ \ S + \ s + \ S + /&@ gmail.com/'file'更具可讀性和健壯性*(GNU sed)*。 –

0

這可能會爲你工作(GNU SED):

sed -i 's/\S\+/&@gmail.com/2' file