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
csplit(1)						      General Commands Manual							 csplit(1)

NAME
csplit - context split SYNOPSIS
prefix] number] file arg1 [...argn] DESCRIPTION
reads file, separates it into n+1 sections as defined by the arguments arg1 ... argn, and places the results in separate files. The maxi- mum number of arguments (arg1 through argn) allowed is 99 unless the option is used to allow for more output file names. If the option is specified, the resulting filenames are through prefixNN where NN is the two-digit value of n using a leading zero if n is less than 10. If the option is not specified, the default filenames through are used. file is divided as follows: Default Prefixed Filename Filename Contents ----------------------------------------------------- xx00 prefix00 From start of file up to (but not including) the line refer- enced by arg1. xx01 prefix01 From the line referenced by arg1 up to the line referenced by arg2. . . . xxNN prefixNN From the line referenced by argn to end of file. If the file argument is standard input is used. supports the Basic Regular Expression syntax (see regexp(5)). Options recognizes the following options: Suppress printing of all character counts normally prints the character counts for each file created). Leave previously created files intact normally removes created files if an error occurs). Name created files through prefixNN (default is through The output file name suffix will use number digits instead of the default This allows creation of more than 100 output files. Arguments (arg1 through argn) to can be any combination of the following: Create a file containing the section from the current line up to (but not including) the line matching the regular expression regexp. The new current line becomes the line matching regexp. Create a file containing the section from the current line up to (but not including) the nth before or after the line matching the regular expression regexp. (e.g., The new current line becomes the line matching plus or minus n lines. equivalent to except that no file is created for the section. line_number Create a file from the current line up to (but not including) line_number. The new current line becomes line_number. Repeat argument. This argument can follow any of the above argument forms. If it follows a regexp argument, that argument is applied num more times. If it follows line_number, the file is split every line_number lines for num times from that point until end-of-file is reached or num expires. Repeats previous operand as many times as necessary to finish input. Enclose in appropriate quotes all regexp arguments containing blanks or other characters meaningful to the shell. Regular expressions must not contain embedded new-lines. does not alter or remove the original file; it is the user's responsibility to remove it when appropriate. EXTERNAL INFLUENCES
Environment Variables determines the collating sequence used in evaluating regular expressions. determines the characters matched by character class expressions in regular expressions. determines the language in which messages are displayed. If or or is not specified in the environment or is set to the empty string, the value of is used as a default for each unspecified or empty variable. If is not specified or is set to the empty string, a default of "C" (see lang(5)) is used instead of If any internationalization variable contains an invalid setting, behaves as if all internationalization variables are set to "C". See environ(5). International Code Set Support Single- and multi-byte character code sets are supported. DIAGNOSTICS
Messages are self explanatory except for: which means that the given argument did not reference a line between the current position and the end of the file. This warning also occurs if the file is exhausted before the repeat count is. EXAMPLES
Create four files, through After editing the ``split'' files, recombine them back into the original file, destroying its previous contents. Perform editing operations Split a file at every 100 lines, up to 10,000 lines (100 files). The option causes the created files to be retained if there are fewer than 10,000 lines (an error message is still printed). Assuming that follows the normal C coding convention of terminating routines with a at the beginning of the line, create a file containing each separate C routine (up to 21) in SEE ALSO
sh(1), split(1), environ(5), lang(5), regexp(5). STANDARDS CONFORMANCE
csplit(1)
All times are GMT -4. The time now is 11:24 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy