head & tail


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers head & tail
# 1  
Old 11-09-2004
Question head & tail

I've a major file which includes other files and now I wanna 'cut' the file in several minor parts....like

....
find / -name "*.tmp" >filea
wc -l filea >fileb
sed -e '1s/ filea//' fileb >filec
AMOUNT=`cat filec`
if [ "$AMOUNT" = ??? ]; then
cat file a |head -100l (ell) |tail -100l >filec
cat file a |head -200l |tail -100l >filed
cat file a |head -300l |tail -100l >filee
....
fi

the number of the entries in filea are unknown. so getting them with wc, edit fileb, write the number in filec, make a variable AMOUNT.

now the problem is a loop. it should cut the first 100 (how making a loop like i+100?) , then the second 100, and so on and should stop if the filea is empty or when there is the EOF and the last part should have less then 100 entries.
also the files should be numbered or so....

thx for help...
# 2  
Old 11-09-2004
From your code, I assume the following: You have a list of filenames in "filea", and you then want to split this into files of 100 lines each?

Use the "split" command instead. All you'd need is

split -l 100 filea

You can specify an optional prefix, etc. "man split"...

If you don't specify the prefix, this will create files such as fileaaa, fileaab, fileaac each with 100 lines a piece.

There is no need for complex head/tail shenanigans.

If you are expecting more than 67600 lines in the first input file, this would exhaust all suffixes (aa through to zz), so specify a greater suffix length with -a.

Hope this helps,

Cheers
ZB
# 3  
Old 11-09-2004
I didn't know this command...great Smilie thx ! ....maybe I should read out the whole man pages - very useful

http://docs.hp.com/cgi-bin/fsearch/f...0041109-044841

split reads file and writes it in pieces (default 1000 lines) onto a set of output files. The name of the first output file is name with aa appended, and so on lexicographically, up to zz (only ASCII letters are used, a maximum of 676 files). If no output name is given, x is the default.
If no input file is given, or if - is given instead, the standard input file is used.

Options

split recognizes the following command-line options and arguments: -l line_count
The input file is split into pieces line_count lines in size.
-a suffix_length
suffix_length letters are used to form the suffix of the output filenames. This option allows creation of more than 676 output files. The output file names created cannot exceed the maximum file name length allowed in the directory containing the files.
-b n The input file is split into pieces n bytes in size.
-b nk The input file is split into pieces n × 1024 bytes in size. No space separates the n from the k.
-b nm The input file is split into pieces n × 1048576 bytes in size. No space separates the n from the m.
-n The input file is split into pieces n lines in size. This option is obsolescent and is equivalent to using the -l line_count option.


...I think that is the solution. until soon...
# 4  
Old 11-09-2004
Data

but now there is another prob....
...
for i in `cat fileaaa`
do
...
done
...
for i in `cat fileaab`
do
...
done
...

how to make the loop? something like...

...
find . -name "fileaa*" >splita
sed -e 's/^/`cat /g' <splita >splitb
sed -e 's/$/`/g' <splitb >splitc
while read line
do
FILEVAR=${line%}
for i in FILEVAR do
...
done <splitc
# 5  
Old 11-09-2004
What about
Code:
#!/bin/sh

cd /path/to/the/files

for file in ./filea*
do
  echo "File... $file"
  while read line
  do
    echo "$line"
  done < $file
done

exit 0

to go through all files line by line. Is this what you want?

Cheers
ZB
# 6  
Old 11-09-2004
yes, exactly what I want. Time is up - I'll try it tomorrow and write back soon...thx
# 7  
Old 11-12-2004
MySQL

working perfect ! thx....

for example when I copy the 100 files from one indexfile and it goes on and takes the next 100 files from the next indexfile, where I've got to set a find command for only the 100 files from one idexfile, not all indexfiles?

when I make a file by date & touch that works, it also looks for newer files then this dumpfile, but it can't find anything or it finds all files from all indexfiles, but not the 100files from only one indexfile.
I set this up after and in front of the second last done. but did not really work...I'll try on.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

How to display certain line of file only using head or tail in 1 command?

First month learning about the Linux terminal and it has been a challenge yet fun so far. We're learning by using a gameshell. I'm trying to display a certain line ( only allowed 1 command ) from a file only using the head or tail. I'm pretty about this answer: head -23 history.txt | tail -1... (1 Reply)
Discussion started by: forzatekk
1 Replies

2. UNIX for Dummies Questions & Answers

What should be precedence of using awk, sed, head and tail in UNIX?

Hi All, I am new to unix. In this forum some days back, I have read something like below: 1) Do not use perl if awk can do your work. 2) Do not use awk if sed can do your work. . . . I do not re-collect the whole thing. I think it is good to know the precedence of using these... (2 Replies)
Discussion started by: Prathmesh
2 Replies

3. Homework & Coursework Questions

Head Tail Problem

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: view the 7th line of the program xxx.sh 2. Relevant commands, code, scripts, algorithms: head command tail... (10 Replies)
Discussion started by: hbell221
10 Replies

4. UNIX for Dummies Questions & Answers

head\tail how to display middle lines

hay i need to display middle line: 1 2 3 4 5 how can i display 3-4? (6 Replies)
Discussion started by: margan_ron
6 Replies

5. Shell Programming and Scripting

head / tail combination returns multiple rows

Hi, As part of our project, we need to load historical data for a year before our system is live. We have the data feed files that we need to load. However, I need to make sure that the file structure (number of fields separated by a comma) on the field is same for all the files of the same... (1 Reply)
Discussion started by: raj.jha
1 Replies

6. Shell Programming and Scripting

Averaging in increments using awk & head/tail

Hi, I only have a very limited understanding and experience with writing code and I was hoping I could get some help. I have a dataset of two columns (txt format, numbers in each row separated by a tab) Eg. 1 5 2 5 3 6 4 7 5 6 6 6 7 ... (5 Replies)
Discussion started by: Emred_Skye
5 Replies

7. Shell Programming and Scripting

Imitate head and tail command script

Hi, I have been given assignment of 30 scripts out of which I was able to solve many, I need help with few out of which one asks to imitate head and tail command of unix without using the head and tail commands. Problem is stated below: Write an interactive shell script to imitate the head... (5 Replies)
Discussion started by: nutalk
5 Replies

8. Shell Programming and Scripting

Head and Tail in One Line

I am new to UNIX......I have one file which contains thousnads of records with header and tailer. Header Record 1 Record 2 .... .... Last Record Trailer I want to concatenate Header and Trailer in the first line....now the output should look like this: Header: Header value, Trailer:... (2 Replies)
Discussion started by: 33junaid
2 Replies

9. Shell Programming and Scripting

Implementing MORE,HEAD & TAIL

hai in my shell script i want to replace the following commands 1) more 2) head 3) tail i want to try all type of possible options avaliabul in the above commands please help in implementing those commands (9 Replies)
Discussion started by: g_s_r_c
9 Replies
Login or Register to Ask a Question