Need help in reading a file horizontally and printing vertically


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help in reading a file horizontally and printing vertically
# 1  
Old 06-19-2009
Need help in reading a file horizontally and printing vertically

Hi Every body,

I have file which has enttries, with each 5 entries as a set of entries, I would like to read the file (line by line) and print five entries of a set vertically, the next entry should come in the next line.

Example:
cat sample_file
I am a
Unix Adminsitrator
new to shell scripting
please help me
in resolving this problem
I am a
Unix Adminsitrator
new to shell scripting
please help me
in resolving this problem
I am a
Unix Adminsitrator
new to shell scripting
please help me
in resolving this problem
I am a
Unix Adminsitrator
new to shell scripting
please help me
in resolving this problem

Output:
I am a Unix Adminsitrator new to shell scripting please help me in resolving this problem
I am a Unix Adminsitrator new to shell scripting please help me in resolving this problem
I am a Unix Adminsitrator new to shell scripting please help me in resolving this problem
I am a Unix Adminsitrator new to shell scripting please help me in resolving this problem

I have tried the following code
counter=0
while read line
do
ent=`echo $line`
counter=`expr $counter + 1`
if [ $counter -le 4 ]
then
echo `awk '{print "\t"}'` $ent
elif [ $counter -eq 5 ]
then
echo -e "\n"
counter=0
fi
done < sample_file


Thanks in advance
# 2  
Old 06-19-2009
This should work
Code:
awk 'NR%5{printf "%s ",$0;next}1' file

but will not make you a Unix Administrator Smilie

Last edited by danmero; 06-19-2009 at 03:16 PM.. Reason: Fix typo, add comma
# 3  
Old 06-19-2009
If everything is structured, keep it simple and use this...
Code:
IFS=""
while read line1
do
        read line2
        read line3
        read line4
        read line5

echo $line1 $line2 $line3 $line4 $line5
done < sample

# 4  
Old 06-19-2009
Or keep it short...

awk ' NR % 5 {printf ("%s ", $0);next} { print "" }' file

---------- Post updated at 06:18 AM ---------- Previous update was at 06:12 AM ----------

Even better is keep it short, and make sure it works ;-)

awk ' NR % 5 {printf ("%s ", $0);next} { print }' file
# 5  
Old 06-19-2009
Code:
awk ' NR % 5 {printf ("%s ", $0);next} { print "" }' file

It won't work; It will truncate the every fifth line. remove the ""
# 6  
Old 06-19-2009
Quote:
Originally Posted by scottn
[/COLOR]Even better is keep it short, and make sure it works ;-)

awk ' NR % 5 {printf ("%s ", $0);next} { print }' file
You don't need the parenthesis(in red) and if you replace your last { print } by 1(true) you'll get the same results Smilie

Quote:
Originally Posted by danmero
Code:
awk 'NR%5{printf "%s ",$0;next}1' file

Ops , typo Smilie
# 7  
Old 06-19-2009
One way to do it using perl:

Code:
perl -ne 's/\n$/ / if $.%5 != 0; $x[$i++]=$_; END{print @x}' sample_file

Or this -

Code:
perl -ne 's/\n/ / if $.%5 != 0; print' sample_file

tyler_durden

Last edited by durden_tyler; 06-19-2009 at 05:33 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Lookup horizontally and vertically and calculate counts

Hello, Please help create the following report. I have a matrix - S1 S2 S3 S4 M1 AA AA TT - M2 AG AG AA GG M3 GG TT - - a first lookup table M3 chr7 4.456 M1 chr7 28.9 M2 chr8 129.678 a second lookup table S1 GGHBBGG/DEDD(@DCCD) (8 Replies)
Discussion started by: jianp83
8 Replies

2. Shell Programming and Scripting

Calculation of column both horizontally and vertically

Hi ALL I have this data ail,UTT,id1_0,COMBO,21,24,21,19 al,UTHAST,id1_0,COMBO,342,390,361,361 dmo,UTST,id1_0,COMBO,21,15,22,23 vne,UAST,id1_0,COMBO,345,372,390,393 I wan the sum of column 5,6,7 & 8 both horizontal and vertical. There is one more prob the column keeps on increasing... (9 Replies)
Discussion started by: nikhil jain
9 Replies

3. Shell Programming and Scripting

Counting characters vertically

I do have a big file in the following format >A1 ATGCGG >A2 TCATGC >A3 -TGCTG The number of characters will be same under each subheader and only possible characters are A,T,G,C and - I want to count the number of A's, T's,G's, C's & -'s vertically for all the positions so that I... (5 Replies)
Discussion started by: Lucky Ali
5 Replies

4. Shell Programming and Scripting

writing the content of two files to a single file horizontally

Hi all, assume that i am having two files file.1 and file.2 these are the contents of file.1 these are the contents of file.2 i want these two contents to be written in another single file like this. can you please post your suggestions. Thanks in advance, ... (3 Replies)
Discussion started by: anishkumarv
3 Replies

5. Programming

help with C programming (reading from files and printing them) (not C++)

I have a file called dvwl.c, and I am running it on a putty (unix server) using: gcc -Wall -g -o mycode dvwl.c ./mycode 1 /usr/share/dict/words s What it does is, it opens up words (since i gave that path) and reads the lines skipping the first line (since it says 1, if i put here 3, then it... (1 Reply)
Discussion started by: omega666
1 Replies

6. UNIX for Dummies Questions & Answers

using sed to write horizontally & sequentially in a file

Hey there I have two commands to get exactly the data i want but.. i want to write them into a file side by side and in the same order so that they always match. So what i'm hoping to learn from this thread is some of the different ways one could take the output of grepped data and write them in... (7 Replies)
Discussion started by: phpfreak
7 Replies

7. Shell Programming and Scripting

Appending two files vertically

Hi Need ur help for the below question. I have two files File-1 & File-2. File-1(This is a fixed file i.e. the content of this file is not going to change over a period of time) ------ a b c d e File-2 (This is a file which changes daily but the record count remains the same)... (1 Reply)
Discussion started by: 46019
1 Replies

8. Shell Programming and Scripting

Reading and printing one by one contents of a file

I have a file which has following contents: localhost_IP_SIP_1233026552455.xml localhost_IP_SIP_1233026552460.xml localhost_IP_SIP_1233026552467.xml localhost_IP_SIP_1233026552759.xml localhost_IP_SIP_1233026552969.xml localhost_IP_SIP_1233026552975.xml ... (2 Replies)
Discussion started by: Aditya.Gurgaon
2 Replies

9. Shell Programming and Scripting

reading two files, comparing, printing when unmatched value is seen

Hello, I have two files: file1 1 2 3 4 5 file2 "a","b",,,,,"c","1",..... "s","d",,,,,"s","1",..... "a","c",,,,,"d","1",.... "f","v",,,,,,"f","2",..... etc I have to read "1" from file1 and grab all records in file2 (say column 6 in file2 is "1") until the column changes its value (... (6 Replies)
Discussion started by: i.scientist
6 Replies

10. UNIX for Advanced & Expert Users

Merging Two File Horizontally

I am trying to merge two large file horizontally using paste command. Every thing is working fine except for time. Its taking lot of time. Is there any effiecient way of doing the same thing or is there anyway by which I can improve its perfomance programatically? Thanks, Yeheya (1 Reply)
Discussion started by: yeheyaansari
1 Replies
Login or Register to Ask a Question