problem is "sed"

Hi,
I want the following string to be printed :

7.5.aa.sss.dddd

out of

7.5.aa.sss.dddd_ROLD

my sed string is:

echo "7.5.aa.sss.dddd_ROLD" | sed -n 's^\(.\).\(.\).\(.*\).\(.*\).\(.*\)^\1.\2.\3.\4.\5^p'

But its not happening.
Can anyone help?

Hi,

keep it simple.

echo "7.5.aa.sss.dddd_ROLD" | sed -n 's/_[^_]*$//p'

Does the trick for me.

Output:

7.5.aa.sss.dddd

HTH Chris

with awk:

echo "7.5.aa.sss.dddd_ROLD" | awk -F_ '{print $1}'
 
# echo "7.5.aa.sss.dddd_ROLD" | sed -n 's^\(.\).\(.\).\(..\).\(...\).\(....\)_.*^\1.\2.\3.\4.\5^p'
7.5.aa.sss.dddd

or more simple

 
# echo "7.5.aa.sss.dddd_ROLD" | sed 's/_.*//'
7.5.aa.sss.dddd