HI Guys,
I want add one extra Column base on 3rd Column .
Input :-
M204 MS204_154 :vsDataUeMe
M204 MS204_154 es:sMeasure 0
M204 MS204_154 es:90ilterCoe 9
M204 MS204_154 es:searchE9090ortTime 40
M204 MS204_154 es:servOrPrioI90HoTimer 4000
M204 MS204_154 es:ueMeajllls154545 TRUE
M204 MS204_154 :vsDataUeMe
M204 MS204_154 :vsDataReport
M204 MS204_154 es:hysteresisA1Prim 10
M204 MS204_154 es:timeToTriggerA1Prim 640
M204 MS204_154 :vsDataReport
M204 MS204_154 :vsDataRep
M204 MS204_154 es:a1ThrdRrSc -113
M204 MS204_154 es:tmoigeASec 640
M204 MS204_154 :vsDataRep
Output :-
M204 MS204_154 :vsDataUeMe :vsDataUeMe
M204 MS204_154 :vsDataUeMe es:sMeasure 0
M204 MS204_154 :vsDataUeMe es:90ilterCoe 9
M204 MS204_154 :vsDataUeMe es:searchE9090ortTime 40
M204 MS204_154 :vsDataUeMe es:servOrPrioI90HoTimer 4000
M204 MS204_154 :vsDataUeMe es:ueMeajllls154545 TRUE
M204 MS204_154 :vsDataUeMe :vsDataUeMe
M204 MS204_154 :vsDataReport :vsDataReport
M204 MS204_154 :vsDataReport es:hysteresisA1Prim 10
M204 MS204_154 :vsDataReport es:timeToTriggerA1Prim 640
M204 MS204_154 :vsDataReport :vsDataReport
M204 MS204_154 :vsDataRep :vsDataRep
M204 MS204_154 :vsDataRep es:a1ThrdRrSc -113
M204 MS204_154 :vsDataRep es:tmoigeASec 640
M204 MS204_154 :vsDataRep :vsDataRep
3rd Column have string which have same name, which i want add before 3rd Column.
Hi, try:
awk 'NF==3{s=$3}{$3=s OFS $3}1' OFS='\t' file
Thanks .....its working ...
if any row have 4th column blank then it giving me wrong output.
Input :-
M204 MS204_154 :vsDataUeMe
M204 MS204_154 es:sMeasure 0
M204 MS204_154 es:90ilterCoe 9
M204 MS204_154 es:searchE9090ortTime 40
M204 MS204_154 es:servOrPrioI90HoTimer 4000
M204 MS204_154 es:ueMeajllls154545 TRUE
M204 MS204_154 :vsDataUeMe
M204 MS204_154 :vsDataReport
M204 MS204_154 es:hysteresisA1Prim
M204 MS204_154 es:timeToTriggerA1Prim
M204 MS204_154 :vsDataReport
M204 MS204_154 :vsDataRep
M204 MS204_154 es:a1ThrdRrSc -113
M204 MS204_154 es:tmoigeASec 640
M204 MS204_154 :vsDataRep
M204 MS204_154 :vsDataUeMe :vsDataUeMe
M204 MS204_154 :vsDataUeMe es:sMeasure 0
M204 MS204_154 :vsDataUeMe es:90ilterCoe 9
M204 MS204_154 :vsDataUeMe es:searchE9090ortTime 40
M204 MS204_154 :vsDataUeMe es:servOrPrioI90HoTimer 4000
M204 MS204_154 :vsDataUeMe es:ueMeajllls154545 TRUE
M204 MS204_154 :vsDataUeMe :vsDataUeMe
M204 MS204_154 :vsDataReport :vsDataReport
M204 MS204_154 hysteresisA1Prim es:hysteresisA1Prim
M204 MS204_154 hysteresisA1Prim es:timeToTriggerA1Prim
M204 MS204_154 :vsDataReport :vsDataReport
M204 MS204_154 :vsDataRep :vsDataRep
M204 MS204_154 :vsDataRep es:a1ThrdRrSc -113
M204 MS204_154 :vsDataRep es:tmoigeASec 640
M204 MS204_154 :vsDataRep :vsDataRep
That's Wrong .. I want only that data which have "vsData" String
OK, try:
awk '$3~/^:/{s=$3}{$3=s OFS $3}1' OFS='\t' file
1 Like
RudiC
6
This would really compare strings and not rely on field 3's structure:
awk '
!(REP) {REP = $3
SKIP = 1
}
{TMP = $3
$3 = REP OFS $3
}
!SKIP &&
TMP == REP {REP = ""
}
{SKIP = 0
}
1
' OFS="\t" file
M204 MS204_154 :vsDataUeMe :vsDataUeMe
M204 MS204_154 :vsDataUeMe es:sMeasure 0
M204 MS204_154 :vsDataUeMe es:90ilterCoe 9
M204 MS204_154 :vsDataUeMe es:searchE9090ortTime 40
M204 MS204_154 :vsDataUeMe es:servOrPrioI90HoTimer 4000
M204 MS204_154 :vsDataUeMe es:ueMeajllls154545 TRUE
M204 MS204_154 :vsDataUeMe :vsDataUeMe
M204 MS204_154 :vsDataReport :vsDataReport
M204 MS204_154 :vsDataReport es:hysteresisA1Prim 10
M204 MS204_154 :vsDataReport es:timeToTriggerA1Prim 640
M204 MS204_154 :vsDataReport :vsDataReport
M204 MS204_154 :vsDataRep :vsDataRep
M204 MS204_154 :vsDataRep es:a1ThrdRrSc -113
M204 MS204_154 :vsDataRep es:tmoigeASec 640
M204 MS204_154 :vsDataRep :vsDataRep