Sponsored Content
Top Forums UNIX for Dummies Questions & Answers How to read contents of a file from a given line number upto line number again specified by user Post 302436782 by grc on Tuesday 13th of July 2010 06:58:31 AM
Old 07-13-2010
How to read contents of a file from a given line number upto line number again specified by user

Hello Everyone.

I am trying to display contains of a file from a specific line to a specific line(let say, from line number 3 to line number 5). For this I got the shell script as shown below:

Code:
if [ $# -eq 3 ]; then
        if [ -e $3 ]; then
            tail +$1 $3 | head -n $2
         else
            echo "$0: Error opening file $3"
            exit 2
        fi
else
        echo "Missing arguments!"
fi

Problem with this code is that it always returns lines from the bottom of the file. I even exchanged the commands head and tail, but of no use. While compiling the above code it shows the following:

Code:
tail: cannot open `+3' for reading: No such file or directory
==> /home/chandran/JONAS/LoveSick <==
It's every day, it's every night
O-oh, call the the doctor
I'm love sick

Can anyone please help me out with the solution.

Thank you.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Appending line number to each line and getting total number of lines

Hello, I need help in appending the line number of each line to the file and also to get the total number of lines. Can somebody please help me. I have a file say: abc def ccc ddd ffff The output should be: Instance1=abc Instance2=def Instance3=ccc Instance4=ddd Instance5=ffff ... (2 Replies)
Discussion started by: chiru_h
2 Replies

2. Shell Programming and Scripting

Adding a columnfrom a specifit line number to a specific line number

Hi, I have a huge file & I want to add a specific text in column. But I want to add this text from a specific line number to a specific line number & another text in to another range of line numbers. To be more specific: lets say my file has 1000 lines & 4 Columns. I want to add text "Hello"... (2 Replies)
Discussion started by: Ezy
2 Replies

3. Shell Programming and Scripting

how to get the data from line number 1 to line number 100 of a file

Hi Everybody, I am trying to write a script that will get some perticuler data from a file and redirect to a file. My Question is, I have a Very huge file,In that file I have my required data is started from 25th line and it will ends in 100th line. I know the line numbers, I need to get all... (9 Replies)
Discussion started by: Anji
9 Replies

4. Shell Programming and Scripting

Read the specified line number from file

Hi Guys, I am new to unix. Actually i want help in writing an single command where i can actually read specific line number in file where the line number will be passed to command as parameter. ex. 1 a 2 b 3 c 4 d And to my command i pass as 2. so i should get output as 2 b ... (15 Replies)
Discussion started by: kam786sim
15 Replies

5. Shell Programming and Scripting

move contents from one file to another based on line number or content

I want a script that will move everything beyond a certain line number or beyond a certain content word into another file. For example, if file A has this: first line second line third line forth line fifth line sixth line I want to run a script that will move everything beyond the third... (4 Replies)
Discussion started by: robp2175
4 Replies

6. Shell Programming and Scripting

Read flat file upto certain number of columns

Hello Guys Please help me with the below issue I want to read a flat file source upto certain number of columns Say my flat file has 30 columns but I want to read upto 25 columns only How come the above issue can be addressed? Thanks a lot!!!! (1 Reply)
Discussion started by: Pratik4891
1 Replies

7. Shell Programming and Scripting

how to read the contents of two files line by line and compare the line by line?

Hi All, I'm trying to figure out which are the trusted-ips and which are not using a script file.. I have a file named 'ip-list.txt' which contains some ip addresses and another file named 'trusted-ip-list.txt' which also contains some ip addresses. I want to read a line from... (4 Replies)
Discussion started by: mjavalkar
4 Replies

8. Shell Programming and Scripting

Write $line number into textfile and read from line number

Hello everyone, I don't really know anything about scripting, but I have to manage to make this script, out of necessity. #!/bin/bash while read -r line; do #I'm reading from a big wordlist instructions using $line done Is there a way to automatically write the $line number the script... (4 Replies)
Discussion started by: bobylapointe
4 Replies

9. Shell Programming and Scripting

How to read a file starting at certain line number?

I am new to ksh scripts. I would like to be able to read a file line by line from a certain line number. I have a specific line number saved in a variable, say $lineNumber. How can I start reading the file from the line number saved in $lineNumber? Thanks! (4 Replies)
Discussion started by: dcowboys13
4 Replies

10. Shell Programming and Scripting

Adding user name to file, and then displaying new line number

Hi all - I'm completely stumped by a script I'm working on... The short version is I have a file called 'lookup' and in it are hundreds of names (first and last). I have a script that basically allows the user to enter a name, and what I need to have happen is something like this: Record... (8 Replies)
Discussion started by: sabster
8 Replies
tail(1) 						      General Commands Manual							   tail(1)

NAME
tail - Writes a file to standard output, beginning at a specified point SYNOPSIS
tail [-f | -r] [-c number | -n number] [file] tail [+number | -number] [unit] [-f | -r] [file] The tail command writes the named file (standard input by default) to standard output, beginning at a point you specify. The second synopsis form of this command is obsolete, and support may be withdrawn at any time. STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: tail: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
Displays the remainder of the file from the starting point number where number is measured in bytes. The sign of number affects the loca- tion in the file at which to begin the copying: Copying begins relative to the beginning of the file. Copying begins relative to the end of the file. Copying begins relative to the end of the file. The origin for counting is 1, that is, -c +1 represents the first byte of the file, -c -1 the last. Does not end after it copies the last line of the input file if the input file is not read from a pipe, but enters an endless loop in which it sleeps for a sec- ond and then attempts to read and copy further records from the input file. Thus, it can be used to monitor the growth of a file being written by another process. Has no effect if specified with -r. Displays remainder of file from the starting point number where number is measured in lines. The sign of number affects the location in the file, measured in lines, to begin the copying: Copying begins relative to the beginning of the file. Copying begins relative to the end of the file. Copying begins relative to the end of the file. The origin for counting is 1, that is, -n +1 represents the first line of the file, -n -1 the last. [Tru64 UNIX] Causes tail to print lines from the end of the file in reverse order. The default for -r is to print the entire file this way. Overrides -f. Begins reading number lines (l), 512-byte blocks (b), kilobyte blocks (k), characters (c and m) from the end of the input. The m argument counts mulktibyte characters as single-byte characters, while c counts characters byte-by-byte but does not break mulk- tibyte characters. The default unit is l for lines. The default number is 10 for all units. Begins reading number lines (l), 512-byte blocks (b), 1-kilobyte blocks (k), or characters (c and m) from the beginning of the input. The m argument counts mulktibyte characters as sin- gle-byte characters, while c counts characters byte-by-byte but does not break mulktibyte characters. The default unit is l for lines. The default number is 10 for all units. In the non-obsolescent form, if you do not specify either -c or n, -n 10 is the default. DESCRIPTION
If you do not specify -f, -r, -number, or +number, tail begins reading 10 lines before the end of the file. The default starting point is - (end of input), l (lines) is the default unit, and 10 is the default number. By specifying +, you can direct tail to read from the beginning of the file. By specifying a number or a unit, or both, you can change the point at which tail begins reading. [Tru64 UNIX] The unit argument can specify lines, blocks, or characters. The tail command can begin reading number (10 by default) units from either the end or the beginning of the file. [Tru64 UNIX] The block size is either 512 bytes or 1 kilobyte. NOTES
When the input is a text file containing mulktibyte characters, use the -c option cautiously since the output produced may not start on a character boundary. EXIT STATUS
The following exit values are returned: Successful completion. An error occurred. EXAMPLES
To display the last 10 lines of a file named notes, enter: tail notes To specify how far from the end to start, enter: tail -20 notes This displays the last 20 lines of notes. To specify how far from the beginning to start, enter: tail +200c notes | more This displays notes a page at a time, starting with the 200th character from the beginning. To follow the growth of a file named accounts, enter: tail -1 -f accounts This displays the last line of accounts. Once every second, tail displays any lines that have been added to the file. This contin- ues until stopped by pressing the Interrupt key sequence. ENVIRONMENT VARIABLES
The following environment variables affect the execution of tail: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to mulktibyte characters in arguments and input files). Determines the locale for the format and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. SEE ALSO
Commands: cat(1), head(1), more(1), page(1), pg(1) Standards: standards(5) tail(1)
All times are GMT -4. The time now is 07:08 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy