如何在文件中的每第三行之前追加字符串

时间:2013-02-21 06:41:57

标签: unix sed awk

档案

a@gmail.com,b@yahoo.com
xyz@gmail.com
abc@gmail.com 
ff@yahoo.co.in
jf@rediff.com
oop@hotmail.com

输出应为:

U|a@gmail.com,b@yahoo.com
D|xyz@gmail.com
R|abc@gmail.com 
U|ff@yahoo.co.in
D|jf@rediff.com
R|oop@hotmail.com

我想在每个第3个字符后附加特定的字符串。

2 个答案:

答案 0 :(得分:4)

#!/usr/bin/sed -f
s/^/U|/
n
s/^/D|/
n
s/^/R|/

Useful one-line scripts for sed

答案 1 :(得分:4)

$ awk 'BEGIN {split("UDR",p,"")} {print p[((NR-1)%3)+1] "|" $0}' a.txt
U|a@gmail.com,b@yahoo.com
D|xyz@gmail.com
R|abc@gmail.com 
U|ff@yahoo.co.in
D|jf@rediff.com
R|oop@hotmail.com