Extracting part of a string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extracting part of a string
# 1  
Old 04-23-2007
Extracting part of a string

Hi all,
I have to extract only the second part of a database column (VARCHAR) and the value is seperated by a "~"

xyz~
chxyz36r~
abder~000082685
mnops~000083554
fulfil302~00026

Above are some examples of the values and for each record I have to extract the value after "~" , if there is a value by using shell scripts. As you can see they are multiple lenghts and in multiple formats and the only way to seperate them is by a "~".
Thanks in advance.
# 2  
Old 04-23-2007
How about this...
Code:
$ cat script
#! /usr/bin/ksh

echo "xyz~
chxyz36r~
~whatif
abder~000082685
mnops~000083554
fulfil302~00026" | while read line ; do
        one=${line%%~*}
        two=${line##*~}
        printf "%30s %15s %15s \n" "$line" "$one" "$two"
done
exit 0
$ ./script
                          xyz~             xyz
                     chxyz36r~        chxyz36r
                       ~whatif                          whatif
               abder~000082685           abder       000082685
               mnops~000083554           mnops       000083554
               fulfil302~00026       fulfil302           00026
$

# 3  
Old 04-23-2007
awk -F "~" '{print $2}'

If you don;t want empty lines ,

awk -F "~" '{print $2}' | grep -v ^$
# 4  
Old 04-23-2007
Code:
awk -F "~" '$2 !~ /^$/ {print $2 }' "file"

# 5  
Old 04-24-2007
cat $filaname | sed 's/.*~\(.*\)/\1/'
# 6  
Old 04-24-2007
Code:
cut -d"~" -f2 filename

# 7  
Old 04-25-2007
Hi all,
Thanks for all the answers..based on the above answers I modified the below script ..

Here is the input file...
XYZ-2066779% xyz~%
XYZ-000036480% chxyz36r~%
XYZ-2056453% abder~000082685%
XYZ-3038583% fulfil302~00026%

I need to extract the first part before '%' and the second part after '~' and before '%'

so my output must be
XYZ-2066779
XYZ-000036480
XYZ-2056453 000082685
XYZ-3038583 00026

The script is:

while read LINE
do
NEWC_ID=`echo $LINE | awk -F'%' '{print toupper($1)}'`
NEWF_ID=`echo $LINE | awk -F'%' '{print ($2)}'`
NF_ID=`echo $NEWF_ID | sed s/\'/\'\'/g`
C_ID=`echo $NEWC_ID | sed s/\'/\'\'/g`
F_ID=`echo $NF_ID | awk -F'~' '{print ($2)}'`

echo $C_ID
echo "-----"
echo $F_ID
echo "-----"

done < $loc/input.txt

Please let me know if there is a better way of implementing the above script..

Thanks in advance..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extracting part of data from files

Hi All, I have log files as below. log1.txt <table name="content_analyzer" primary-key="id"> <type="global" /> </table> <table name="content_analyzer2" primary-key="id"> <type="global" /> </table> Time taken: 1.008 seconds ID = gd54321bbvbvbcvb <table name="content_analyzer"... (7 Replies)
Discussion started by: ROCK_PLSQL
7 Replies

2. Shell Programming and Scripting

Extracting the part of string

I have a string: 2015-04-16 07:30:05,625000 +0900 xxxx.com I just want to extract the time from the above line I am using the below syntax x=~ /(.*) (\d+)\:(\d+)\:(\d+),(.*)\.com/ $time = $2 . ':' . $3 . ':' . $4; print $time But it is not working. Can some1 please help (2 Replies)
Discussion started by: karan8810
2 Replies

3. Shell Programming and Scripting

Extracting a part of a string

Hi, I needed to extract some specific characters from a string based on user input. For example: After the script executes the user enters the following details: Please enter the string: This is a shell script Please enter the starting position: 11 Please enter the number of characters to be... (4 Replies)
Discussion started by: ChandanN
4 Replies

4. UNIX for Dummies Questions & Answers

Extracting part of a word

I have the code message={TP=2012:09:23:00:00:00:GMT,SD=2012:09:23:00:00:00:GMT,SP=2,FT=CCGT,FG=3605} I want to extract the FG=3605 parts of this. Please help. I am trying to do this using awk or unix. (5 Replies)
Discussion started by: JenniferTopham
5 Replies

5. Shell Programming and Scripting

Extracting part of line between two words

Hi, I have a file few hundred MB's with text like one below in single line. 20091117 abc xyg 20091117 def ghi 20091118 ppp ttt 20091118 zzz zzz xxx I need to extract part of line from 1st occurence of pattern 20091117 till first occurence of another pattern 20091118. I tried... (3 Replies)
Discussion started by: artistic94555
3 Replies

6. Shell Programming and Scripting

Extracting a part of XML File

Hi Guys, I have a very large XML feed (2.7 MB) which crashes the server at the time of parsing. Now to reduce the load on the server I have a cron job running every 5 min.'s. This job will get the file from the feed host and keep it in the local machine. This does not solve the problem as... (9 Replies)
Discussion started by: shridhard
9 Replies

7. Shell Programming and Scripting

awk: Extracting part of the buffer

Hi, I am trying to extract part of a line using "awk". My requirement is to extract the value $6 (which is the last parameter) from a line. As the sixth value contains some space, i am getting only part of the string. so i am trying to extract from $6 to the end of the buffer. How to do it... (7 Replies)
Discussion started by: venkat_k
7 Replies

8. Shell Programming and Scripting

need help extracting this part

JADE TRADER 143W MYPEN 40 HC M X10 28 7 1 0 MYPEN 20 GP X X10 15 2 1 0 MYPEN 40 GP X X10 28 7 1 0 MYPEN 20... (6 Replies)
Discussion started by: finalight
6 Replies

9. Shell Programming and Scripting

Extracting part of the basename

Hi, I was wondering if there is an easy way to strip off the required basename. I have a script called apb0110021.sh and the contents of the script are typeset -u MScript=`basename $0 | cut -d. -f1` scriptname=sys.Audit.ksh parms="PROJECT1 dsAudit $MScript 1 BEGIN" $SCRIPTS/$scriptname... (3 Replies)
Discussion started by: madhunk
3 Replies

10. Shell Programming and Scripting

extracting uncommon part between two files

Hi, I need to extract the uncommon (better say incremental) part from 2 files say file_1 and file_2. file_2 contains everything that is in file_1. That is file_2 has been created internally somehow : cat file_1 temp_file > file_2 My objective is to extract the temp_file part from... (2 Replies)
Discussion started by: sabyasm
2 Replies
Login or Register to Ask a Question