|
|
|
|
||||||
| comp.unix.shell Using and programming the Unix shell. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hi all,
I'm looking for command that print any number of lines from a given file. For example file1.txt contains 100 lines using the head command I can printout the first n lines from file1.txt. using the tail command I can printout the n last lines from file1.txt How to do for printing out a block of lines, let say from the 50 th line to 68 th line ? I used this but it fails file_name="file1.txt" if [ -f $file_name ] ;then tail +$1 $3 | head -n$2 fi Another question: How to detect the total number of lines from a given file? knowing this it will me to use a for loop to echo all lines that I want to print. cheers |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Thursday 8 May 2008 12:17, Nezhate wrote:
> Hi all, > I'm looking for command that print any number of lines from a given > file. > For example file1.txt contains 100 lines > using the head command I can printout the first n lines from > file1.txt. > using the tail command I can printout the n last lines from file1.txt > How to do for printing out a block of lines, let say from the 50 th > line to 68 th line ? sed -n '50,68p' yourfile > Another question: > How to detect the total number of lines from a given file? > knowing this it will me to use a for loop to echo all lines that > I want to print. What you want can be done using other (more efficient) means, however to know the number of lines in a file there are many ways, for instance: sed -n '$=' yourfile awk 'END {print NR}' yourfile wc -l < yourfile -- D. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On Thursday 8 May 2008 12:25, Dave B wrote:
>> How to do for printing out a block of lines, let say from the 50 th >> line to 68 th line ? > > sed -n '50,68p' yourfile If the file is very large, you probably don't want sed to read the rest of the file, so do sed -n '50,68p;68q' yourfile -- D. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On 8 Mai, 12:17, Nezhate <mazouz.nezh...@gmail.com> wrote:
> Hi all, > I'm looking for command that print any number of lines from a given > file. > For example file1.txt contains 100 lines > using the head command I can printout the first n lines from > file1.txt. > using the tail command I can printout the n last lines from file1.txt > How to do for printing out a block of lines, let say from the 50 th > line to 68 th line ? awk 'NR>=50&&NR<=68' yourfile awk 'NR==50,NR==68' yourfile > I used this but it fails In what way does it fail? > > file_name="file1.txt" > > if [ -f $file_name ] ;then > tail +$1 $3 | head -n$2 Are you sure you intended to use $3 instead of $filename? > fi > > Another question: > How to detect the total number of lines from a given file? wc -l <yourfile Or if you want to combine that information with the other command above and use just a single (awk) program awk 'NR==50,NR==68; END{print NR}' yourfile Janis > knowing this it will me to use a for loop to echo all lines that > I want to print. > cheers |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
On Thu, 08 May 2008 07:17:45 -0300, Nezhate <mazouz.nezhate@gmail.com>
wrote: > Hi all, > I'm looking for command that print any number of lines from a given > file. > For example file1.txt contains 100 lines > using the head command I can printout the first n lines from > file1.txt. > using the tail command I can printout the n last lines from file1.txt > How to do for printing out a block of lines, let say from the 50 th > line to 68 th line ? > I used this but it fails > > file_name="file1.txt" > > if [ -f $file_name ] ;then > tail +$1 $3 | head -n$2 > fi > > Another question: > How to detect the total number of lines from a given file? > knowing this it will me to use a for loop to echo all lines that > I want to print. > cheers #Q1 file_name="file1.txt" if [ -f $file_name ] ;then head -n$2 $file_name|tail -n$(($2-$1+1)) fi #Q2 wc -l $file_name |
|
![]() |
| Outils de la discussion | |
|
|