Hi abdulbadii,
Would you please explain how the above script is supposed to do something related to the topic of this thread?
If I slightly modify your script to add a debugging statement showing how the array a is set:
Code:
awk '
NR==FNR {
a[$1]=$4
printf("a[%s] has been set to \"%s\"\n", $1, $4)
next
}
{ if ($2 == a[array1])
$2=a[array2]
}
' FS=,={} arrayfile FS=, inputfile
it produces the output:
Code:
a[Array1={A, B, C}] has been set to ""
a[Array2= {U09, C04, A054}] has been set to ""
when the arrayfile and inputfile files contain the data shown in post #1 in this thread.
Note that since neither of the awk variables array1 and array2 have been set, the if statement will never find a match. And, even if a match were found and the 2nd field was changed to an empty string by the assignment, what difference would it make? There is nothing in this awk script that produces any output.
Note also that using the fixed string =,={} as a field separator for the 1st input file seems strange since that string is never found in either of your input files. That means that each line will be field #1 for that line and field $4 in each line will be an empty string (which is exactly what we see from the added debugging statement).
hi;
i have a file.txt and its 9th, 10th and 11th line lines are:
RbsLocalCell=S2C1 maxPortIP 4 (this is 9th line)
RbsLocalCell=S3C1 maxPortIP 4 (this is 10th line)
RbsLocalCell=S1C1 ... (11 Replies)
Hi,
I am looking for any script which can do the following.
have to read a pattern from fileA and copy it to fileB.
fileA:
...
...
Header
...
...
..p1
...
...
fileB:
....
....
Header (3 Replies)
I have an awk script to find the maximum value of the 2nd column of a 2 column datafile, but I need to find the top 5 maximum values of the 2nd column.
Here is the script that works for the maximum value.
awk 'BEGIN { subjectmax=$1 ; max=0} $2 >= max {subjectmax=$1 ; max=$2} END {print... (3 Replies)
Is there an awk script that can easily perform the following operation?
I have a data file that is in the format of
1944-12,5.6
1945-01,9.8
1945-02,6.7
1945-03,9.3
1945-04,5.9
1945-05,0.7
1945-06,0.0
1945-07,0.0
1945-08,0.0
1945-09,0.0
1945-10,0.2
1945-11,10.5
1945-12,22.3... (3 Replies)
Hi,
I need some unix command to replace the following thing.
cat test.dat
1234|test|8/19/2009|8/20/2009|test
1234|test|8/9/2009|8/21/2009|test
1234|test|8/1/2009|8/2/2009|test
after processing
1234|test|08/19/2009|08/20/2009|test
1234|test|08/09/2009|08/21/2009|test... (6 Replies)
I need to be able to search for a string in the first column and if that string exists than replace the nth column with "-9.99".
AW12000012012 2.38 1.51 3.01 1.66 0.90 0.91 1.22 0.82 0.57 1.67 2.31 3.63 0.00
AW12000012013 1.52 0.90 1.20 1.34 1.21 0.67 ... (14 Replies)
Using Awk, how can I achieve the following?
I have set of record numbers, for which, I have to replace the nth field with some values, say spaces.
Eg:
Set of Records : 4,9,10,55,89,etc
I have to change the 8th field of all the above set of records to spaces (10 spaces).
Its a delimited... (1 Reply)
I wanted to search for a string and replace it with other string from nth column of a file which is comma seperated which I am able to do with below
# For Comma seperated file without quotes
awk 'BEGIN{OFS=FS=","}$"'"$ColumnNo"'"=="'"$PPK"'"{$"'"$ColumnNo"'"="'"$NPK"'"}{print}' ${FileName} ... (5 Replies)
I am passing a variable and replace nth value with the variable.
I tried using many options in awk command but unable to ignore the special characters in the output and also unable to pass the actual value.
Input : "1","2","3"
Output : "1","1000","3"
TempVal=`echo 1000`
Cat... (2 Replies)
Hi,
I have a text file which looks like this
a.txt
A,12,Apple,Red
B,33,Banana,Yellow
C,66,Sky,Blue
I need to search for a particular field(s) in particular column(s) and for that matching line need to replace the nth column.
Sample scenario 1:
Search for 66 in second field and Sky in... (5 Replies)
Discussion started by: wahi80
5 Replies
LEARN ABOUT PHP
array_intersect_ukey
ARRAY_INTERSECT_UKEY(3) 1 ARRAY_INTERSECT_UKEY(3)array_intersect_ukey - Computes the intersection of arrays using a callback function on the keys for comparisonSYNOPSIS
array array_intersect_ukey (array $array1, array $array2, [array $...], callable $key_compare_func)
DESCRIPTION array_intersect_ukey(3) returns an array containing all the values of $array1 which have matching keys that are present in all the argu-
ments.
PARAMETERS
o $array1
- Initial array for comparison of the arrays.
o $array2
- First array to compare keys against.
o $...
- Variable list of array arguments to compare keys against.
o $key_compare_func
- The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to
be respectively less than, equal to, or greater than the second.
int callback (mixed $a, mixed $b)
RETURN VALUES
Returns the values of $array1 whose keys exist in all the arguments.
EXAMPLES
Example #1
array_intersect_ukey(3) example
<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>
The above example will output:
array(2) {
["blue"]=>
int(1)
["green"]=>
int(3)
}
In our example you see that only the keys 'blue' and 'green' are present in both arrays and thus returned. Also notice that the values for
the keys 'blue' and 'green' differ between the two arrays. A match still occurs because only the keys are checked. The values returned are
those of $array1.
SEE ALSO array_diff(3), array_udiff(3), array_diff_assoc(3), array_diff_uassoc(3), array_udiff_assoc(3), array_udiff_uassoc(3), array_diff_key(3),
array_diff_ukey(3), array_intersect(3), array_intersect_assoc(3), array_intersect_uassoc(3), array_intersect_key(3).
PHP Documentation Group ARRAY_INTERSECT_UKEY(3)