Picking matching strings


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Picking matching strings
# 1  
Old 04-28-2011
Picking matching strings

I have a list of file names. However in some instances I might have a "-" at the beginning of the filename or an "=".

For example I might have something like this

Code:
set Lst = "file1 file2 file3 -file4 file5="

I want to pick up the ones having "-" at the beginning or "=" and store them in AierrLst.

Have coded the thing below. Would be good to have suggestions.


Code:
set ierr1 = 0
set AierrLst = ""
foreach f ($Lst)
  set cerr = `echo $f | awk '/^-|=/'`  # Matches "-" or "="
  if ("$cerr" != "") then
    set AierrLst = "$AierrLst $f"
    if ($ierr1 == 0) echo ""
    echo "ERROR. $f  Argument option does not exist."
    MATH ierr1 = $ierr1 + 1
  endif
end

# 2  
Old 04-28-2011
Does this give you some ideas?

Code:
$ echo "file1 file2 file3 -file4 file5="
file1 file2 file3 -file4 file5=

$ echo "file1 file2 file3 -file4 file5=" | tr " " "\n"
file1
file2
file3
-file4
file5=

$ echo "file1 file2 file3 -file4 file5=" | tr " " "\n" | grep [\-\=]
-file4
file5=

$ echo "file1 file2 file3 -file4 file5=" | tr " " "\n" | grep [\-\=] | tr "\n" " "
-file4 file5=

# 3  
Old 04-28-2011
Code:
echo "file1 file2 file3 -file4 file5=" | tr " " "\n" | grep [\-\=]

returns "grep: No match."

---------- Post updated at 02:16 PM ---------- Previous update was at 01:45 PM ----------

Tried this to no avail

Code:
echo "file1 file2 file3 -file4 file5= file-6" | tr " " "\n" | awk '/^-/ && /=/'

# 4  
Old 04-28-2011
Hi.

None of the names begin (^) with - and (&&) end ($) with = at the same time. Perhaps that && should be || (or)?:
Code:
$ echo "file1 file2 file3 -file4 file5= file-6" |  awk '/^-/ || /=$/' RS=" "
-file4
file5=

# 5  
Old 04-28-2011
Code:
echo 'file1 file2 file3 -file4 file5= file-6"'| tr ' ' '\n' | nawk '/^[-]/ || /[=]$/' | tr '\n' ' '

# 6  
Old 04-28-2011
Oh yes

Quote:
Originally Posted by scottn
Hi.

None of the names begin (^) with - and (&&) end ($) with = at the same time. Perhaps that && should be || (or)?:
Code:
$ echo "file1 file2 file3 -file4 file5= file-6" |  awk '/^-/ || /=$/' RS=" "
-file4
file5=

---------- Post updated at 02:30 PM ---------- Previous update was at 02:29 PM ----------

What's the $ about?
# 7  
Old 04-28-2011
Oh yes, I made that bit up Smilie

(assuming you used a ^ with - that a $ (end of line) would be useful for =)
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

(g)awk: Matching strings from one file in another file between two strings

Hello all, I can get close to what I am looking for but cannot seem to hit it exactly and was wondering if I could get your help. I have the following sample from textfile with many thousands of lines: File 1 PS001,001 HLK PS002,004 L<G PS004,002 XNN PS004,006 BVX PS004,006 ZBX=... (7 Replies)
Discussion started by: jvoot
7 Replies

2. Shell Programming and Scripting

Matching only the strings I provide - sed

Hello.. I am currently learning sed and have found myself in some trouble.. I wrote this command: sed -ne 's/*\(\{2\}*\{2\}*\{2\}*\).*\(\{2\}*\{2\}*\{2\}*\).*/\1\2/p' and some of the output i get is : ->stockholm->paris<-stockholmpi<-tokyo->paris<-stockholmpi... (8 Replies)
Discussion started by: jozo95
8 Replies

3. Shell Programming and Scripting

Need to append matching strings in a file

Hi , I am writing a shell script to check pvsizes in linux box. # for i in `cat vgs1` > do > echo "########### $i ###########" > pvs|grep -i $i|awk '{print $2,$1,$5}'>pvs_$i > pvs|grep -i $i|awk '{print $1}'|while read a > do > fdisk -l $a|head -2|tail -1|awk '{print $2,$3}'>pvs_$i1 >... (3 Replies)
Discussion started by: nanduri
3 Replies

4. Shell Programming and Scripting

matching strings from different files

I want to compare file 1 to file 2 and if a string from file 1 appears in file 2, then print the file 2 row, where the string appears, onto file3. file 1 looks like this. DOG_0004340 blah blah2 j 22424 DOG_3010311 blah blah3 o 24500 DOG_9949221 blah blah6 x 35035 file 2 looks like... (5 Replies)
Discussion started by: verse123
5 Replies

5. UNIX for Dummies Questions & Answers

Help with finding matching position on strings

I have a DNA file like below and I am able to write a short program which finds/not an input motif, but I dont understand how I can include in the code to report which position the motif was found. Example I want to find the first or all "GAT" motifs and want the program to report which position... (12 Replies)
Discussion started by: pawannoel
12 Replies

6. Programming

help with matching strings

In C programming how do i check if a char is equal to a vowel , like a e i o or u, small or big case. in my function i have the parameter like *word, and i am using word in a for loop, to check if its equal. i use tolower(word)=='a' || ..... but for some reason it only matches on lower case and... (1 Reply)
Discussion started by: omega666
1 Replies

7. Shell Programming and Scripting

Strings not matching

Hi, I have got two variables holding strings, if i echo them, they print the same value but if i compare the condition fails?? can somebody suggest something?? I have checked the word count too, they are also same. Thanks, Atul (4 Replies)
Discussion started by: atulmt
4 Replies

8. Shell Programming and Scripting

Extracting the strings matching a pattern from a word

Hi All , I need to extract the strings that are matching with the pattern : CUST.<AnyStringOfAnyLength>.<AnyStringOfAnyLength> from a file and then write all these string into another file. e.g. If a file SOURCE contains following lines : IF(CUST.ABCD.EFGH==1) THEN CUST.ABCD.EFGH =... (7 Replies)
Discussion started by: swapnil.nawale
7 Replies

9. Shell Programming and Scripting

Remove matching lines with list of strings

Hi, HP-UX gxxxxxxxc B.11.23 U ia64 3717505098 unlimited-user license I have a file with below pipe separated field values: xxx|xxx|abcd|xxx|xxx|xx xxx|xxx|abcd#123|xxx|xxx|xx xxx|xxx|abcd#345|xxx|xxx|xx xxx|xxx|pqrs|xxx|xxx|xx xxx|xxx|pqrs#123|xxx|xxx|xx The third field has values like... (6 Replies)
Discussion started by: Nanu_Manju
6 Replies

10. UNIX for Dummies Questions & Answers

matching characters between strings

please send the logic or program to find the matching characters between two strings for ex string1 :abc string2 :adc no .of matching characters is 2(a,c) (9 Replies)
Discussion started by: akmtcs
9 Replies
Login or Register to Ask a Question