Visit Our UNIX and Linux User Community


How do I create an array from a file using every 3rd line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How do I create an array from a file using every 3rd line
# 1  
Old 07-31-2009
How do I create an array from a file using every 3rd line

A file contains the following information shown below. Every ceName has 2 consecutive lines that have to be evaluated, using awk, sed, cut (any common unix tools).

Input file:
Code:
ceName: Node-1
processName: tzMgmt
Status: PROCESS_NOT_RUNNING
ceName: Node-2
processName: tzMgmt
Status: PROCESS_RUNNING
ceName: Node-1
processName: XDM
Status: PROCESS_NOT_RUNNING
ceName: Node-2
processName: XDM
Status: PROCESS_RUNNING

To become:

Code:
processName        Status Node-1                   Status Node-2
-----------        -------------------              -------------------
tzMgmt              PROCESS_NOT_RUNNING        PROCESS_RUNNING
XDM                  PROCESS_NOT_RUNNING        PROCESS_RUNNING

Any advice appreciated.

Thanks,

Bjoern

Last edited by radoulov; 07-31-2009 at 05:52 PM.. Reason: Fix spacing.
# 2  
Old 07-31-2009
To keep the forums high quality for all users, please take the time to format your posts correctly.

First of all, use Code Tags when you post any code or data samples so others can easily read your code. You can easily do this by highlighting your code and then clicking on the # in the editing menu. (You can also type code tags [code] and [/code] by hand.)

Second, avoid adding color or different fonts and font size to your posts. Selective use of color to highlight a single word or phrase can be useful at times, but using color, in general, makes the forums harder to read, especially bright colors like red.

Third, be careful when you cut-and-paste, edit any odd characters and make sure all links are working property.

Thank You.

The UNIX and Linux Forums
# 3  
Old 07-31-2009
Quote:
Originally Posted by radoulov
To keep the forums high quality for all users, please take the time to format your posts correctly.

First of all, use Code Tags when you post any code or data samples so others can easily read your code. You can easily do this by highlighting your code and then clicking on the # in the editing menu. (You can also type code tags [code] and [/code] by hand.)

Second, avoid adding color or different fonts and font size to your posts. Selective use of color to highlight a single word or phrase can be useful at times, but using color, in general, makes the forums harder to read, especially bright colors like red.

Third, be careful when you cut-and-paste, edit any odd characters and make sure all links are working property.

Thank You.

The UNIX and Linux Forums
Thanks for the reply, but the text you put into [code - /code] is not really code but text.

Regards,

Bjoern
# 4  
Old 08-01-2009
Try this and see if you can modify it to your requirement:
Code:
sed 'N;N;N;N;N;s/\n/\t\t/gp' file

FYI: You put your data / input / output etc also between [CODE]
This will make it easy to read.

---------- Post updated at 11:33 PM ---------- Previous update was at 05:27 PM ----------

This works, but not the best way.
Lets see if any one else comes up with a better one.
Code:
sed  '/ceName:.*/d; s/^[^:]*: //' 3rdline.txt | sed 'N;N;N;s/\n/\t/g; s/\(^[^\t]*\t[^\t]*\t\)[^\t]*\t\([^\t]*\)$/\1\2/'

# 5  
Old 08-01-2009
Quote:
Originally Posted by BRH
Thanks for the reply, but the text you put into [code - /code] is not really code but text.
[...]
Quote:
use Code Tags when you post any code or data samples
Please read the rules.
# 6  
Old 08-01-2009
Quote:
Originally Posted by edidataguy
Try this and see if you can modify it to your requirement:
Code:
sed 'N;N;N;N;N;s/\n/\t\t/gp' file

FYI: You put your data / input / output etc also between [code]
This will make it easy to read.

---------- Post updated at 11:33 PM ---------- Previous update was at 05:27 PM ----------

This works, but not the best way.
Lets see if any one else comes up with a better one.
Code:
sed  '/ceName:.*/d; s/^[^:]*: //' 3rdline.txt | sed 'N;N;N;s/\n/\t/g; s/\(^[^\t]*\t[^\t]*\t\)[^\t]*\t\([^\t]*\)$/\1\2/'

This is a little more refined:
Code:
sed  '/ceName:.*/d; s/^[^:]*: //' 3rdline.txt | sed 'N;N;N;s/\n/\t/g; s/\([^\t]*\t\)//3'

# 7  
Old 08-03-2009
Hi I just did a simalar thing and ended up using awk you might find this a lot simpler Eg:

Code:
awk 'ORS=NR%3?"~":"\n"' alltr.out > alltr.sql


Previous Thread | Next Thread
Test Your Knowledge in Computers #73
Difficulty: Easy
BSD (Berkeley Software Distribution) is an open-source, Unix-like operating system.
True or False?

10 More Discussions You Might Find Interesting

1. OS X (Apple)

Create a bash array from a flat file of whitespaces only.

Hi guys and gals... MacBook Pro. OSX 10.13.2, default bash terminal. I have a flat file 1920 bytes in size of whitespaces only. I need to put every single whitespace character into a bash array cell. Below are two methods that work, but both are seriously ugly. The first one requires that I... (7 Replies)
Discussion started by: wisecracker
7 Replies

2. Shell Programming and Scripting

From 2 files create 3rd file with uncommon data

Hi All, I have two files. File1 and File2. Want to create another file with all the records of File1 those are not present in File2. Please guide. Thanks in advanced. Anupam (3 Replies)
Discussion started by: Anupam_Halder
3 Replies

3. Shell Programming and Scripting

Bash 3.2 - Array / Regex - IF 3rd member in array ends in 5 digits then do somthing...

Trying to do some control flow parsing based on the index postion of an array member. Here is the pseudo code I am trying to write in (preferably in pure bash) where possible. I am thinking regex with do the trick, but need a little help. pesudo code if == ENDSINFIVEINTS ]]; then do... (4 Replies)
Discussion started by: briandanielz
4 Replies

4. Shell Programming and Scripting

Perl - use search keywords from array and search a file and print 3rd field when matched

Hi , I have been trying to write a perl script to do this job. But i am not able to achieve the desired result. Below is my code. my $current_value=12345; my @users=("bob","ben","tom","harry"); open DBLIST,"<","/var/tmp/DBinfo"; my @input = <DBLIST>; foreach (@users) { my... (11 Replies)
Discussion started by: chidori
11 Replies

5. Shell Programming and Scripting

Display 3rd line of a file using cut only

Hello, i want to use new line character in cut command i want to display 3rd line of a file using cut only( not by sed or head -tail command) can anyone suggest me ? Regards (12 Replies)
Discussion started by: Deepak Dutt
12 Replies

6. Solaris

Configure disk array in RAID5 and create file system

I'm new to forums, it's my first time posting. I have a sun v490 server. I just installed solaris 10.6, on the local drives. I'm being asked to do the following: For Oracle install I need “oracle” user that belong to “dba” and “oinstall” groups. File system /u01/app/oracle, 10GB (if... (6 Replies)
Discussion started by: Kjons76
6 Replies

7. Shell Programming and Scripting

How to extract 3rd line 4th column of a file

Hi, Shell script: I would need help on How to extract 3rd line 4th column of a file with single liner Thanks in advance. (4 Replies)
Discussion started by: krishnamurthig
4 Replies

8. Shell Programming and Scripting

Print starting 3rd line until end of the file.

Hi, I want to Print starting 3rd line until end of the file. Pls let me know the command. Thanks in advance. (1 Reply)
Discussion started by: smc3
1 Replies

9. Shell Programming and Scripting

create array holding characters from sring then echo array.

Hi, I wish to store $string1 in $string1array a character in each array element. Then i wish to echo the entire array to the screen so that it reads as the normal string again. I have been trying with the code below but does not work. Please help... To put string into array: ... (5 Replies)
Discussion started by: rorey_breaker
5 Replies

10. Shell Programming and Scripting

How to print 3rd to last line of file?

Hi, I have a ksh script I would like to modify. What I need it to do is look at an ever changing log file and print the 3rd to last line. Is there a command that will display this? I can not use line numbers because the file is always growing. Thanks for any help (2 Replies)
Discussion started by: NivekRaz
2 Replies

Featured Tech Videos