07-12-2008
array on awk
I have a raw data file:
70,1,1,-53.25
70,1,1,,,,-57.50
70,1,1,,,,,,,,,,-48.00
I want to have a output file with the formatting below:
70,1,1,-53.25,,,,-57.50,,,,,-48.00
I mean if these rows have the first similar three variables which will be group into one row. And I try to write a awk script:
BEGIN { FS=",";}
{
for(i = 1; i <= NF; i++)
if ( i == NF ) {
arr[$i] = $NF
}
}
END{
for(i = 1; i <= 27; i++)
{
if (i in arr) { printf arr[i] ; printf "," ; }
else printf "," ;
}
}
but the result is not expected. I think the problem because the array "arr" cannot receive the any value. Which problem ?
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
How can find Array is NULL or not.
i wrote script using arrays but i want dislpy an message if arrary was Empty.
pls help me on this. (2 Replies)
Discussion started by: koti_rama
2 Replies
2. Shell Programming and Scripting
Dear Experts,
I have a file containing text like below
123
456
789
012
345
I want to save each line in array.
and print each array index as per my requirement.
For Example array will print 456
array will print 012
Thanks for your Help. (14 Replies)
Discussion started by: Danish Shakil
14 Replies
3. Shell Programming and Scripting
Hi all,
i have a data array as follows.
array=ertfgj2345
array=456ttygkd
.
.
.
array=errdjt3235
so number or elements in the array can varies depending on how big the data input is.
now i have a variable, and it is $1 (there are $2, $3 and so on, i am only interested in $1).
... (9 Replies)
Discussion started by: usustarr
9 Replies
4. Shell Programming and Scripting
Hi I am trying to get data from an array and input it into awk. Please see below:
###
#!/bin/bash
#declare array
declare -a ARRAY
exec 10</path/to/arrayfile
let count=0
while read LINE <&10; do
ARRAY=$LINE
((count++))
done
#close file
exec 10>&-
ENDLOOP=0 (10 Replies)
Discussion started by: rocket_dog
10 Replies
5. Shell Programming and Scripting
hi,
can somebody explain me this?
probably i am overlooking something but i dont know what
why is not printed "7 9 11" instead of this?
$ echo "" | awk '{for(i=1;i<=3;i++){j=7;a=j;j=j+2;} print a,a,a; }'
7 7 7thanks (2 Replies)
Discussion started by: erik80
2 Replies
6. Shell Programming and Scripting
Hello experts,
I'm stuck with this script for three days now. Here's what i need.
I need to split a large delimited (,) file into 2 files based on the value present in the last field.
Samp: Something.csv
bca,adc,asdf,123,12C
bca,adc,asdf,123,13C
def,adc,asdf,123,12A
I need this split... (6 Replies)
Discussion started by: shell_boy23
6 Replies
7. Shell Programming and Scripting
I'm trying to get the output from awk into a bash array. Here is my script.
#!/bin/bash
while :
do
app=$( osascript -e "tell application \"System Events\" to return name of every process whose frontmost is true" )
echo "$app"
if ava ]]
then
ps -ax | grep -v awk | pids=( $(awk... (5 Replies)
Discussion started by: nextyoyoma
5 Replies
8. Shell Programming and Scripting
Hello All,
Can you please help me with the below.
#!/bin/bash
ARR="No Differences In Stage Between HASH_TOTALS & HASH_TOTALS_COMP For UNINUM:0722075 PROVIDER:5 EXTRACT_DT:30-SEP-12 VER_NUM:1"
ARR="No Differences In Stage Between HASH_TOTALS & HASH_TOTALS_COMP For UNINUM:0722075 PROVIDER:5... (14 Replies)
Discussion started by: Ariean
14 Replies
9. Shell Programming and Scripting
Here's my code:
awk -F '' 'NR==FNR {
if (/time/ && $5>10)
A=$2" "$3":"$4":"($5-01)
else if (/time/ && $5<01)
A=$2" "$3":"$4-01":"(59-$5)
else if (/time/ && $5<=10)
A=$2" "$3":"$4":0"($5-01)
else if (/close/) {
B=0
n1=n2;
... (2 Replies)
Discussion started by: klane
2 Replies
10. UNIX for Beginners Questions & Answers
Hello. I'm trying to figure out which one of these is not true about an awk array.
-You do not need to formally declare an array; it is created automatically on first assignment
-Array elements can only be addressed using an index
... (1 Reply)
Discussion started by: Eric7giants
1 Replies
LEARN ABOUT REDHAT
pamdeinterlace
pamdeinterlace(1) General Commands Manual pamdeinterlace(1)
NAME
pamdeinterlace - remove ever other row from a PAM/PNM image
SYNOPSIS
pamdeinterlace [-takeodd] [-takeeven] N [infile]
You can use the minimum unique abbreviation of the options. You can use two hyphens instead of one. You can separate an option name from
its value with white space instead of an equals sign.
DESCRIPTION
pamdeinterlace Removes all the even-numbered or odd-numbered rows from the input PNM or PAM image. Specify which with the -takeeven and
-takeodd options.
This can be useful if the image is a video capture from an interlaced video source. In that case, each row shows the subject 1/60 second
before or after the two rows that surround it. If the subject is moving, this can detract from the quality of the image.
Because the resulting image is half the height of the input image, you will then want to use pamstretch or pnmscale to restore it to its
normal height:
pamdeinterlace myimage.ppm | pamstretch -yscale=2 >newimage.ppm
OPTIONS
-takeodd
Take the odd-numbered rows from the input and put them in the output. The rows are numbered starting at zero, so the first row in
the output is the second row from the input. You cannot specify both -takeeven and -takeodd.
-takeeven
Take the even-numbered rows from the input and put them in the output. The rows are numbered starting at zero, so the first row in
the output is the first row from the input. This is the default. You cannot specify both -takeeven and -takeodd.
SEE ALSO
pamstretch(1), pnmscale(1)
11 November 2001 pamdeinterlace(1)