My sig file grows larger. And every once in a while, I want to be selective about which sigs are selected by my random sig selector (a plugin for thunderbird).

I thought about making a script that moves the sig file out of the way, and greps certain lines from the main sig file (now a different name), and dumps them into a sig file of the original name. But my problem is that I need grep to cough up everything between the two "%" delimiters, not just the matching line. And further, if more than one sig matches, I don't want two successive delimiter lines. And finally, I don't want a delimiter line at the beginning or end of the resulting file.

I don't have much experience with such things outside of DOS batch files, and even that was long ago. But I'm thinking I may need to use grep -n STRING to identify the line numbers of the matches, and grep -n ^%$ to identify the delimiter lines. But then it would be a matter of telling sed to grab the appropriate line numbers. But how do I get the script to calculate which line numbers?

Is there a decent online resource or three that has information fit for a beginner but is capable of getting me where I want to go?

Here's my rudimentary understanding of what I need in my script. But first, from the command line:

$ filterSigs Lan

<script filterSigs>
#!/bin/bash
mv sigFile sigFileOriginal
grep -n $1 <sigFileOriginal > matchingLinesOnly
# This yields 10 quotes of Lan, and one quote mentioning Lan's name
grep -n ^%$ <sigFileOriginal > delimiterLinesOnly
# Now to start a new selective subset sig file
echo Ralph\<br\>> sigFile
echo \<br\>>> sigFile
echo -------------------->> sigFile
echo $>> sigFile
# I need a way for the script file to know that I
# need lines 11 thru 13,
# then 23-25, 32-34, 104-106, 166-168, 169-171,
# then 216-218, 243-245, 270-272, & 294-303
# except that since 303 is the final delimiter,
# just drop that one.
# Note that the quotes grep tagged were all
# 3 lines each (including delimiter line) except
# the final one, which was 10 lines (only 9 if you
# drop the final delimiter line).
</script filterSigs>

<file matchingLinesOnly>
12:--Lan Barnes<br>
24:--Lan Barnes<br>
33:--Lan Barnes<br>
105:--Lan Barnes<br>
167:--Lan Barnes<br>
170:--Lan Barnes<br>
216:Suppose a supernatural being, say Zeus, threw lightning bolts at Lan's house. Since one of his fundamental assumptions is that there's no supernatural, his explanation will necessarily not acknowledge the possibility of a supernatural being throwing lightning bolts. He will find an explanation that /fits/.<br>
244:--Lan Barnes<br>
271:--Lan Barnes<br>
296:--Lan Barnes<br>
302:--Lan Barnes<br>
</file matchingLinesOnly>

<file delimiterLinesOnly>
7:%
10:%
13:%
16:%
19:%
22:%
25:%
28:%
31:%
34:%
40:%
43:%
45:%
48:%
51:%
54:%
57:%
60:%
63:%
66:%
69:%
72:%
75:%
79:%
82:%
85:%
89:%
94:%
100:%
103:%
106:%
109:%
113:%
116:%
119:%
122:%
125:%
128:%
131:%
134:%
138:%
144:%
147:%
150:%
153:%
159:%
162:%
165:%
168:%
171:%
174:%
177:%
180:%
183:%
188:%
194:%
197:%
201:%
206:%
209:%
212:%
215:%
218:%
221:%
224:%
230:%
233:%
236:%
239:%
242:%
245:%
251:%
254:%
257:%
263:%
269:%
272:%
275:%
278:%
284:%
287:%
290:%
293:%
303:%
306:%
309:%
312:%
</file delimiterLinesOnly>



--
Ralph

--------------------
The problem with defending the purity of the English language is that English is about as pure as a cribhouse whore. We don't just borrow words; on occasion, English has pursued other languages down alleyways to beat them unconscious and rifle their pockets for new vocabulary.
--James Davis Nicoll

--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to