Extract string between two delimiter


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract string between two delimiter
# 15  
Old 08-13-2013
Your are fixing the symptoms. Fix the program that gives wrong output.
# 16  
Old 08-13-2013
Quote:
Originally Posted by Niranjancse
Could you please explain me how this command works??

Thanks is advance
Code:
awk     '       {while (!($0~/\.... *$/)) {             # all filenames have extensions: dot + three chars = \.+... before spaces and EOL 
                        getline x;$0=$0" "x}}           # while no ext: get next line; append to $0
                {gsub (/^[^(]*\(                        # subst: BOL, any chars except "(", and "("
                                |                       # OR
                                 \).*$/                 # ")" any chars EOL
                                        ,"")            # with nothing (i.e. remove); leaving pure filename behind
                }
         1                                              # print (modified?) $0
        ' file                                          # work on file

---------- Post updated at 18:12 ---------- Previous update was at 18:03 ----------

EDIT: I have to second ahamed101 in post#13 that moving targets are really annoying! Still, try this:
Code:
awk '{while (gsub(/\"/,"&")%2) {getline x; $0=$0" "x}}1' file 
db2 +c "alter table $SCHEMA.$tabname activate not logged initially" >>$LOG 2>&1
db2 +c "alter table $SCHEMA.$tabname activate not logged initially &  $SCHEMA.$tabname activate not logged initially JOIN $SCHEMA.$tabname activate not logged initially INNER $SCHEMA.$tabname activate not logged initially" >>$LOG 2>&1
db2 +c "alter table $SCHEMA.$tabname activate not logged initially" >>$LOG 2>&1
db2 +c "alter table $SCHEMA.$tabname  activate not logged initially" >>$LOG 2>&1

You now have the full lines in $0 and can operate on it as need be.
# 17  
Old 08-13-2013
@RudiC you missed this And I want data between two delimeter " " in one line only.

This should give correct result:
Code:
awk -v RS='"' '/LOG/ {f=1}  NR%2==0 {gsub(/\n/,x,$0);s=s $0} f{print s;s=x;f=0}'
alter table $SCHEMA.$tabname activate not logged initially
alter table $SCHEMA.$tabname activate not logged initially & $SCHEMA.$tabname activate not logged initially JOIN$SCHEMA.$tabname activate not logged initially INNER$SCHEMA.$tabname activate not logged initially
alter table $SCHEMA.$tabname activate not logged initially
alter table $SCHEMA.$tabname activate not logged initially

But its much better to fix the output of the program, and does the output vary all the time? How many version is needed?
# 18  
Old 08-13-2013
@Jotne: No, I did not miss it. I left it to the requestor's discretion what to do with the full lines. Just adding {FS="\""; $0=$0; print $2} would yield the results you presented...
But I agree, all these are band aids not addressing the root problem.
# 19  
Old 08-13-2013
Okey

Just for the fun of it, a much shorter version Smilie
Code:
awk 'NR%2==0 {gsub(/\n/,x);print}' RS='"' file
alter table $SCHEMA.$tabname activate not logged initially
alter table $SCHEMA.$tabname activate not logged initially & $SCHEMA.$tabname activate not logged initially JOIN$SCHEMA.$tabname activate not logged initially INNER$SCHEMA.$tabname activate not logged initially
alter table $SCHEMA.$tabname activate not logged initially
alter table $SCHEMA.$tabname activate not logged initially

# 20  
Old 08-13-2013
Nice!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract multiple columns base on double quotes as delimiter

Hi All, I have my data like below "1","abc,db","hac,aron","4","5" Now I need to extract 1,2,4th columns Output should be like "1",abc,db","4" Am trying to use cut command but not able to get the results. Thanks in advance. (4 Replies)
Discussion started by: weknowd
4 Replies

2. Shell Programming and Scripting

Skip the delimiter with in double quotes and count the number of delimiters during data extract

Hi All, I'm stuck-up in finding a way to skip the delimiter which come within double quotes using awk or any other better option. can someone please help me out. Below are the details: Delimited: | Sample data: 742433154|"SYN|THESIS MED CHEM PTY.... (2 Replies)
Discussion started by: BrahmaNaiduA
2 Replies

3. Shell Programming and Scripting

how to cut all string after the last delimiter?

hi all, suppose a string: abc/def/ghi/jkl/mn.txt and i want to get the file name without the path. however, different files have different paths, therefore the number of delimiter is uncertain. thanks so much! (3 Replies)
Discussion started by: sunnydanniel
3 Replies

4. Shell Programming and Scripting

How to split a string with no delimiter

Hi; I want to write a shell script that will split a string with no delimiter. Basically the script will read a line from a file. For example the line it read from the file contains: 99234523 These values are never the same but the length will always be 8. How do i split this... (8 Replies)
Discussion started by: saint34
8 Replies

5. Shell Programming and Scripting

Extract semicolon separated delimiter

The log reads as follows. fname1;lname1;eid1;addr;pincode1; fname2;lname2;eid2;addr2;pincode2; fname3;lname3;eid3;addr3;pincode3; fname4;lname4;eid;addr4;pincode4; how do i extract only fname and save it in an array similarly for lname and so on i tried reading a file and cutting each... (5 Replies)
Discussion started by: vkca
5 Replies

6. Shell Programming and Scripting

Extract 2 or more int from the text with delimiter.

Hi All, I want to extract the integers from the each line, each line may have 2 or more integers. The following command is appending each integers. echo "Hi I am 100, my friend is 500, his friend is 423" | sed "s///g" 100500423 I need to have delimiter "|" between the integers. If anyone... (18 Replies)
Discussion started by: sarwan
18 Replies

7. Shell Programming and Scripting

extract string from varying delimiter line

Hi I have lines like this a=1, b=2, c=3, a=1, d=4, e=5, b=225, I need to extract the b=nnn... value. I dont know how many other entries will be before and after it in each line. Ive tried a basic line like awk '/b=/, $NF ~ /,/ ' myfile.txt but I think that it doesnt care which comma it... (5 Replies)
Discussion started by: rebelbuttmunch
5 Replies

8. Shell Programming and Scripting

Delimiter count in a string.

Hi , I need to get the delimiter "-" count in a particular string. string= SYS_NAME-123-S5-2008-10-20.LOG the delimit "-" count is 5 . Using sed or awk can I know the count ? I have seen how to get the count for delimiter in a file but not a string :( Thanks, Priya (8 Replies)
Discussion started by: priyam
8 Replies

9. UNIX for Dummies Questions & Answers

extract fields from text file using delimiter!!

Hi All, I am new to unix scripting, please help me in solving this assignment.. I have a scenario, as follows: 1. i have a text file(read1.txt) with the following data sairam,123 kamal,122 etc.. 2. I have to write a unix... (6 Replies)
Discussion started by: G.K.K
6 Replies

10. Shell Programming and Scripting

creating a delimiter string

hi i have a function printValues() { var=$# count=0 qName="" while do if then echo QManager Name $1 fi if then echo Cluster Name$2 fi if (( $count != 0 && $count != 1 )) then ... (0 Replies)
Discussion started by: satish@123
0 Replies
Login or Register to Ask a Question