10-09-2007
awk problems
awk ' FILENAME=="First"{
arr[$1] = 1;
x=sub[$2] ;
}
FILENAME=="Second"{
if (/^10/ && arr[substr($0,31,5)]){
sub(substr($0,4,5),$x,$0);
print $0 ;
}
}
' First Second
the problem that I want to access the VAR X from the first file to modify the second file if the (IF expression is true)
the first problem :how can we solve this
the second problem : if we have several files as the second but the first is fixed how can we get the files automatically
here is an example of the files
the first file:
04756 23644
02565 25696
25698 25693
the second files:
10023658702365970000236587000204756
20002655000002365900000255
10002365000002365000002566900000225
thanks in advance
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi I'm a newbie to Unix scripting and was having some problems with AWK. I have written this little script that should read a process list and then print out the PID's of the offending processes. Unfortunately it doesn't seem to work! The script is as follows:
ps -ef | awk '{if... (10 Replies)
Discussion started by: trainee
10 Replies
2. Shell Programming and Scripting
If i try the -f option for awk, i get the "awk: can't open " error message
The following awk statement works fine without the -f option
`awk <$RULES '/^IGNORE_POLICY / { print $2 }'`
Below how i turned on debugging to show what is happening, can someone provide me with some advice!!!!
... (1 Reply)
Discussion started by: Junes
1 Replies
3. Shell Programming and Scripting
I do have a file (named as templist) which looks like this one:
00450000.000000 00402300.000000 00040000.000000 00020000.000000 00020000.000000 00020000.000000 00020000.000000
and I want to make a script that adds this using AWK or FOR.
I tried using awk using the command
but it just... (8 Replies)
Discussion started by: dakid
8 Replies
4. UNIX for Dummies Questions & Answers
Using Linux, I am trying to create a list of all the lines that have "Non-white" or "No" in column 3 of a file: ethnicity.txt.
I have used the following command :
awk '$3 == "No" || $3 == "Non-white" {print $1, $2, $3}' ethnicity.txt
This only returns the lines with "No" and none of... (3 Replies)
Discussion started by: polly_falconer
3 Replies
5. Shell Programming and Scripting
Hi All,
I have the following requirement. In a directory i get files from external source. I at regular intervals check that directory for any incoming files.
The file name is underscore delimited.
Such as:
aaa_bbb_ccc_ddd_eee_fff.dat
I am using awk and and splitting the file name. ... (4 Replies)
Discussion started by: satishpv_2002
4 Replies
6. UNIX for Dummies Questions & Answers
Hi I am writing a shell script for a number of things and aone problem that keeps comming up is AWK formatting.
When commands are typed into the command line they are fine, but when executed in the script the results are pilled up and not in a list/table format.
I have tried using ... (2 Replies)
Discussion started by: AngelFlesh
2 Replies
7. Shell Programming and Scripting
Dear All,
I have the following awk script.
#!/bin/bash
sh stdev.cmd data.file | awk '{print $2}' > out.data
read d < out.data
echo $d
awk '{print $1,$2- $f}' new > newz
The script runs "stdev.cmd" and output a file "out.data" and the value of the... (2 Replies)
Discussion started by: Yacob_123
2 Replies
8. Shell Programming and Scripting
awk 'BEGIN{
if('"$CATE"'<'"${WARN}"')
printf ("%s", "'"`Kfunc "" ; break`"'")
else if (('"${CATE}"'>='"${WARN}"') && ('"${CATE}"'<'"${CRIT}"'))
printf ("%s", "'"`Wfunc ""; break`"'")
else if ('"${CATE}"'>='"${CRIT}"')
printf... (6 Replies)
Discussion started by: SkySmart
6 Replies
9. Shell Programming and Scripting
So, I'm having a lot of crazy problems with Awk that I cannot understand. This one in particular is driving me nuts. Here is one section of my Awk script:
print $0
sub(/Jan/,"",$2)
sub(/Feb/,"",$2)
sub(/Mar/,"",$2)
sub(/Apr/,"",$2)
sub("May","",$2)
... (5 Replies)
Discussion started by: rrdein
5 Replies
10. Shell Programming and Scripting
Ubuntu, Bash 4.3.48
Hi,
I have this input file:
a1:b2:c30:g4:h12:j7
and I want this output file:
a1=g4:b2=h12:c30=j7
I can do it this with this code:
awk -F':' '{print $1"="$4":"$2"="$5":"$3"="$6"}' INPUT > OUTPUTIn this case I have 6 columns, I calculate manually the half number of... (6 Replies)
Discussion started by: echo manolis
6 Replies
SUBSTR(3) 1 SUBSTR(3)
substr - Return part of a string
SYNOPSIS
string substr (string $string, int $start, [int $length])
DESCRIPTION
Returns the portion of $string specified by the $start and $length parameters.
PARAMETERS
o $string
- The input string. Must be one character or longer.
o $start
- If $start is non-negative, the returned string will start at the $start'th position in $string, counting from zero. For
instance, in the string ' abcdef', the character at position 0 is ' a', the character at position 2 is ' c', and so forth. If
$start is negative, the returned string will start at the $start'th character from the end of $string. If $string is less than or
equal to $start characters long, FALSE will be returned.
Example #1
Using a negative $start
<?php
$rest = substr("abcdef", -1); // returns "f"
$rest = substr("abcdef", -2); // returns "ef"
$rest = substr("abcdef", -3, 1); // returns "d"
?>
o $length
- If $length is given and is positive, the string returned will contain at most $length characters beginning from $start (depend-
ing on the length of $string). If $length is given and is negative, then that many characters will be omitted from the end of
$string (after the start position has been calculated when a $start is negative). If $start denotes the position of this trunca-
tion or beyond, false will be returned. If $length is given and is 0, FALSE or NULL, an empty string will be returned. If
$length is omitted, the substring starting from $start until the end of the string will be returned.
Example #2
Using a negative $length
<?php
$rest = substr("abcdef", 0, -1); // returns "abcde"
$rest = substr("abcdef", 2, -1); // returns "cde"
$rest = substr("abcdef", 4, -4); // returns false
$rest = substr("abcdef", -3, -1); // returns "de"
?>
RETURN VALUES
Returns the extracted part of $string; or FALSE on failure, or an empty string.
CHANGELOG
+--------------+---------------------------------------------------+
| Version | |
| | |
| | Description |
| | |
+--------------+---------------------------------------------------+
|5.2.2 - 5.2.6 | |
| | |
| | If the $start parameter indicates the position |
| | of a negative truncation or beyond, false is |
| | returned. Other versions get the string from |
| | start. |
| | |
+--------------+---------------------------------------------------+
EXAMPLES
Example #3
Basic substr(3) usage
<?php
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// Accessing single characters in a string
// can also be achieved using "square brackets"
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
Example #4
substr(3) casting behaviour
<?php
class apple {
public function __toString() {
return "green";
}
}
echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>
The above example will output:
1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'
ERRORS
/EXCEPTIONS
Returns FALSE on error.
Example #5
<?php
var_dump(substr('a', 1)); // bool(false)
?>
SEE ALSO
strrchr(3), substr_replace(3), preg_match(3), trim(3), mb_substr(3), wordwrap(3), String access and modification by character.
PHP Documentation Group SUBSTR(3)