Sponsored Content
Full Discussion: Using Grep in a Shell Script
Top Forums Shell Programming and Scripting Using Grep in a Shell Script Post 66592 by nbvcxzdz on Wednesday 16th of March 2005 05:26:29 AM
Old 03-16-2005
Using Grep in a Shell Script

Hi everyone,

Im trying to write a Shell script that basically creates a set of files based on a file with many records. For example if a file called dummy has the following content:

a.txt
1st line of a's text file
2nd line of a's text file
3rd line of a's text file
b.txt
1st line of b's text file
2nd line of b's text file
3rd line of b's text file

After running my shell script, 2 files should be created. The first should be called a.txt and its contents should be:
1st line of a's text file
2nd line of a's text file
3rd line of a's text file

The second file created should be called b.txt and its contents should be:
1st line of b's text file
2nd line of b's text file
3rd line of b's text file

So essentialy the name of the file is followed by its content in dummy. I've attempted to write a script to do this but ive being having problems getting it to work. If someone has done this before using similar code or completely different code could you please help me out? I think i have some error in my grep line and also other minor errors. My shell script code
is as follows:

#look at one line at a time in dummy file
line_number=1
#number of lines in file, temporarliy set to 9 but should be whatever the #number of lines in the file is
LENGTH=9

while [ $line_number -le $LENGTH ]
do
$current_line=`tail +$line_number < dummy|head -n$line_number|cat`

if [ grep ".txt" $current_line ]
then
FILENAME=$current_line
else
`echo $current_line >> $FILENAME`
fi

#$line_number='exp $line_number + 1'
line_number=`expr $line_number+1`
done




thanks
nbvcxzdz
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

grep, sed in a shell script

Hi, I have a problem with a simple script I am trying to write. I want a user to type grep, sed commands that are then stored in variables. Those variables are stored in a function, and the function is then called to execute the commands. The idea is that the user does it step by step. ... (4 Replies)
Discussion started by: Trufla
4 Replies

2. Shell Programming and Scripting

grep in Shell script

Hello I do want to write a script which will check any errors say "-error" in the log file then have to send email to the concern person . And the concern person will correct the error . Next time if the script runs eventhough the error has been corrected it will ... (1 Reply)
Discussion started by: Krishnaramjis
1 Replies

3. Shell Programming and Scripting

Grep or Tail in shell script

Hi, I am writing a shell script that checks catalina logs on a production system and mails me if it detects errors. It greps the logs for known errors which i have defined as variables. The problem is the logs are huge, approx 30,000 before they rotate. So I am forced to use grep instead... (3 Replies)
Discussion started by: Moxy
3 Replies

4. Shell Programming and Scripting

Shell script grep help

Hey there, newbie question : echo "::kmastat" | /usr/bin/mdb -k | grep Total | grep "kmem_*" Total 17326080 432853 0 Total 426508288 65458 0 Total 704757760 1572001732 0 Total ... (11 Replies)
Discussion started by: shriyer
11 Replies

5. Shell Programming and Scripting

Grep command in shell script

Hi, I have written the following shell script - Error_String="error" var1="| grep -v note1 | grep -v note2" grep -i $Error_String /users/mqm/Pwork/Err/*.out $var1 The above script gives error saying "grep: can't open | grep: can't open grep grep: can't open -v" etc In my program... (3 Replies)
Discussion started by: prasannasupp
3 Replies

6. Shell Programming and Scripting

Simple Shell Script to Grep

Hi guys, I have written this script, however the outcome is invalid. It contains grep search that is not needed: Script: #!/bin/bash #this is a test script FILES=$(ls /home/student/bin/dir1/*) GREPFUNC=$(grep -E -i "login|Successfully" ORProxyTC`date '+%m%d%Y'`*.txt/ ${FILES})... (14 Replies)
Discussion started by: DallasT
14 Replies

7. Shell Programming and Scripting

How to grep sql error in shell script and exit the script?

I need help in the following script. I want to grep the sql errors insert into the error table and exit the shell script if there is any error, otherwise keep running the scripts. Here is my script #!/bin/csh -f source .orapass set user = $USER set pass = $PASS cd /opt/data/scripts echo... (2 Replies)
Discussion started by: allinshell99
2 Replies

8. Shell Programming and Scripting

Shell Script with Grep

Hi guys - below is my script that is checking for current file, size and timestamp. However I added a "grep" feature in it (line in red), but not getting the desired result. I am trying to acheive in output: 1. Show me the file name, timestamp, size and grep'ed words It would be a... (2 Replies)
Discussion started by: DallasT
2 Replies

9. Shell Programming and Scripting

Grep in Shell script

hi guys very new to this game so excuse my ignorance. I need to create a script that simply greps for a text string and then outputs a message depending on whether the text string is there or not. The script I have setup is below, but whenever I run it I get the following error: ... (5 Replies)
Discussion started by: ap2112
5 Replies

10. Shell Programming and Scripting

Speeding up shell script with grep

HI Guys hoping some one can help I have two files on both containing uk phone numbers master is a file which has been collated over a few years ad currently contains around 4 million numbers new is a file which also contains 4 million number i need to split new nto two separate files... (4 Replies)
Discussion started by: dunryc
4 Replies
SWISS::GNs(3pm) 					User Contributed Perl Documentation					   SWISS::GNs(3pm)

Name
       SWISS::GNs.pm

Description
       SWISS::GNs represents the GN lines within an SWISS-PROT + TrEMBL entry as specified in the user manual
	http://www.expasy.org/sprot/userman.html . The GNs object is a container object which holds a list of SWISS::GeneGroup objects.

Inherits from
       SWISS::ListBase.pm

Attributes
       "list"
	     Each list element is a SWISS::GeneGroup object.

       "and" (deprecated, for old format only)
	     Delimiter used between genes. Defaults to " AND ".

       "or" (deprecated, for old format only)
	     Delimiter used between gene names. Defaults to " OR ".

Methods
   Standard methods
       new
       fromText
       toText

   Reading/Writing methods
       text [($newText)]
	   Sets the text of the GN line to the parameter if it is present, and returns the (unwrapped) text of the line.  Also sets 'and' and 'or'
	   delimiters to the first occurrences of the words "OR" and "AND" in the line, conserving the case.

       lowercase (deprecated, for old format only)
	   Sets the GNs::and and GNs::or delimiters to their lower case values.

       uppercase (deprecated, for old format only)
	   Sets the GNs::and and GNs::or delimiters to their upper case values.

       getFirst()
	   Returns first gene name in gene line

       getTags($target)
	   Returns evidence tags associated with $target

	   $target is a string

       isPresent($target)
	   Returns 1 if $target is present in the GN line

	   $target is a string

       needsReCasing($target)
	   If $target is present in the GN line, but wrongly cased, method returns the matching name in its current case

	   $target is a string

       replace($newName, $target, $evidenceTag)
	   Replaces the first GN object in the GN line whose text attribute is $target with a new GN object whose text attribute is set to
	   $newName and whose evidenceTags attribute is is set using values set by splitting $evidenceTag on /, / (as name is not being changed,
	   programs should keep old tag and add new tag).  Does nothing if $target is not found.

       delete($target)
	   Removes synonym/single-member gene group matching $target. Note that if a "Name" is deleted, the first "Synonym" will be promoted to
	   "Name"

       addAsNewSynonym($newName, $target, $evidenceTag, $location)
	   Adds a new GN object (with text attribute set to new $newName, and evidenceTags attribute set to ($evidenceTag)), as a synonym to the
	   first gene group in which $target is a gene name.  Does nothing if $target is not found.  Will not add a duplicate gene name.
	   $location determines where in gene group new object is added: if $location == 1, 2, 3, ..., new object added in the 1st, 2nd, 3rd, ...
	   position; if $location == 0, new object added before $target; if $location == -1, new object added after $target (default); if
	   $location == -2, new object added at end of gene group.  Note that if the new synonym is inserted in the first postion, it will become
	   the "Name" and the previous "Name" will be downgraded to first "Synonym"

       addAsNewGeneGroup($newName, $target, $evidenceTag, $location)
	   Adds a new GeneGroup object, comprising 1 GN object (with text attribute set to new $newName, and evidenceTags attribute set to
	   ($evidenceTag)). Will not add a duplicate gene name.  $location and $target determine where in GNs line new group is added: if
	   $location == 1, 2, 3, ..., new object added in the 1st, 2nd, 3rd, ... position; if $location == 0, new object added before $target; if
	   $location == -1, new object added after $target (default); if $location == -2, new object added at end of GNs line.	Does nothing if
	   $target is not found, and $location == 0 or -1; otherwise $target does not need to be set.

       replaceGeneGroup($newGeneGroup, $target)
	   Replaces the first gene group containing $target with $newGeneGroup.  Creating the $newGeneGroup correctly is the user's responsibility

       getGeneGroup($target)
	   Returns the first gene group that contains $target

       setToOr()
	   Retruns a new GNs object, but with all GNs objects in a single gene group.  Needed when adding 'C' to 'A and B', when the relationship
	   of 'C' to 'A' and 'B' is unknown: the universal use of ' or ' is the default delimeter for TrEMBL entries

TRANSITION
The format of the GN line will change in 2004 from: GN (CYSA1 OR CYSA OR RV3117 OR MT3199 OR MTCY164.27) AND (CYSA2 OR GN RV0815C OR MT0837 OR MTV043.07C). to: GN Name=CysA1; Synonyms=CysA; OrderedLocusNames=Rv3117, MT3199; GN ORFNames=MtCY164.27; GN and GN Name=CysA2; OrderedLocusNames=Rv0815c, MT0837; ORFNames=MTV043.07c; This module supports both formats. To convert an entry from the old to the new format, do: $entry->GNs->is_old_format(0); perl v5.10.1 2006-01-26 SWISS::GNs(3pm)
All times are GMT -4. The time now is 04:54 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy