Help needed with sed

Hi,

I following example I'm trying to separate teh deirectory name and file name. File name is separated by sed -e is not working. The last command prints /oradb/data/my_arch_1_1285.arc while I need the output as /oradb/data/. Please help.

STREAM_LOG="/oradb/data/my_arch_1_1285.arc"
file_name=`echo $STREAM_LOG |awk -F"/" '{ print $NF }'`
echo $file_name
dir_name=`echo $STREAM_LOG |sed -e 's/$file_name$//g'`
echo $dir_name

Use built in shell commands:

file_name=`echo ${STREAM_LOG##*/}`
dir_name=`echo ${STREAM_LOG%/*}`

Regards

#!/bin/ksh

STREAM_LOG="/oradb/data/my_arch_1_1285.arc"
file_name="${STREAM_LOG##*/}"
dir_name="${STREAM_LOG%/*}"

echo "file_name->[${file_name}]"
echo "dir_name->[${dir_name}]"

Wow... Thanks a lot Franklin for quick and easy solution.

There are commands like basename and dirname to do this job.
However, w.r.t your example:

file_name=`echo $STREAM_LOG |awk -F"/" '{ print $NF }'`
dir_name=`echo $STREAM_LOG | sed 's!\(.*\)/.*!\1!' `
STREAM_LOG="/oradb/data/my_arch_1_1285.arc"
basename $STREAM_LOG
dirname  $STREAM_LOG

or:

echo ${STREAM_LOG##*/}
echo ${STREAM_LOG%/*}