I have a file like this
OUTLN OPEN Y
SCOTT OPEN N
USER4 OPEN Y
DBSNMP EXPIRED & LOCKED N
DIP EXPIRED & LOCKED N
I need a following o/p in another file
DPC,OUTLN,OPEN,Y
DPC,SCOTT,OPEN,N
DPC,USER4,OPEN,Y
DPC,DBSNMP,EXPIRED & LOCKED,N
DPC,DIP,EXPIRED & LOCKED,N
DPC word is gonna be constant.
Kindly help me...
Thanks
Gopal
Try this:
awk '{$1=$1;print "DPC," $0}' OFS="," file
frans
February 17, 2010, 9:42am
3
sed -e 's/ /,/g' -e 's/,\&,/ \& /g' file
---------- Post updated at 15:42 ---------- Previous update was at 15:40 ----------
sed -e 's/ /,/g' -e 's/,\&,/ \& /g' -e 's/^/DPC,/' file
joeyg
February 17, 2010, 9:50am
4
>cat 3fields.txt
OUTLN OPEN Y
SCOTT OPEN N
USER4 OPEN Y
DBSNMP EXPIRED & LOCKED N
DIP EXPIRED & LOCKED N
>sed "s/ \& /_\&_/" 3fields.txt | gawk '{OFS=",";print "DPC",$1,$2,$3}' | tr "_" " "
DPC,OUTLN,OPEN,Y
DPC,SCOTT,OPEN,N
DPC,USER4,OPEN,Y
DPC,DBSNMP,EXPIRED & LOCKED,N
DPC,DIP,EXPIRED & LOCKED,N
kshji
February 17, 2010, 11:26am
5
# delimiters spaces and tabs in source data ?
# tab=>space
cat 3fields.txt | tr "\011" " " | awk -v start="DPC," '
NF>=3 {
first=$1
last=$NF
$1="" # clear input 1st
$NF="" # clear input last
# trim rest data = 2nd field
gsub(/^ */,"") # remove spaces begin
gsub(/ *$/,"") # remove spaces end
print start first "," $0 "," last
} '