![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Script that extract some lines from a file lookin into another | heartwork | Shell Programming and Scripting | 7 | 01-25-2008 06:57 AM |
| Extract lines from a file automatically. Please a Help | alexcol | Shell Programming and Scripting | 8 | 12-16-2006 05:25 PM |
| How to extract a sequence of n lines from a file | 0ktalmagik | Shell Programming and Scripting | 4 | 06-29-2006 11:24 PM |
| How to extract many lines from a file, typically the 1000 last | kingkong | UNIX for Dummies Questions & Answers | 3 | 11-23-2005 04:20 AM |
| extract specific lines from file | apalex | UNIX for Dummies Questions & Answers | 2 | 05-15-2001 09:57 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
how to extract a range of lines from a file
I am reading a file that contains over 5000 lines and I want to assign it to a shell variable array (which has a restriction of 1024 rows). I had an idea that if I could grab 1000 record hunks of the file, and pipe the records out, that I could perform a loop until I got to the end and process 1000 records at a time. For example
lines 1-1000 lines 1001-2000 lines 2001-3000 etc... Does anyone know of a unix command that will allow the user to return a range of lines from a file to standard output? The command that I was trying was. set -A CustNo `cut -f1-19 -d',' -s RAGEFF.lst|sed 's/,/ /g'|sed 's/\L//g'|nawk '{ if (NF == 19) {print $1}}' ` Any help would be appreciated. |
|
||||
|
Never mind. with different search parameters, I found the answer.
use a combination of head and tail will return any range you want. Sorry to bug the forum, I should have looked harder first. For example to get lines 1001-2000 your would issue the following command. set -A CustNo `cat RAGEFF.lst|head -2000|tail -1000|cut -f1-19 -d',' -s |sed 's/,/ /g'|sed 's/\L//g'|nawk '{ if (NF == 19) {print $1}}' ` |
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|