03-12-2009
Using echo in AWK
Hello,
I have written the script below to extract specific data from a text file and then use the data extracted as parameters for another shell script call 'loto_tsim'.
Everytime I run my script it complains about the 'echo' line. Am I missing something? I have spent hours and still cannot solve this, can anyone help?
#!/bin/sh
awk 'NR==1 {n = split($3, array, "-");
lotoE="1\n 20\n 0\n 0\n 1\n 1\n 7\n 0\n array[1]\n array[2]\n array[3]\n array[4]\n array[5]\n array[6]\n 1\n 1\n 0\n 0\n 0\n N\n 1\n 100\n"
echo ${lotoE} | $LOTO/bin/loto_tsim > /dev/null 2>&1
}' LottWagers2.txt
----------------------THIS IS THE ERROR------------------------------
Syntax Error The source line is 6.
The error context is
echo >>> ${ <<<
awk: 0602-502 The statement cannot be correctly parsed. The source line is 6.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hello All,
Below is a simple script i worte to find the 208th char in a file. If the char = "C" then I re-direct the line to a file called change.txt. If it is not "C" then I re-direct it to a file called delete.txt.
My problem is I have a file 0f 500K lines. this script is very slow. I am... (4 Replies)
Discussion started by: eja
4 Replies
2. Shell Programming and Scripting
Hi All,
I have the below command.
awk 'BEGIN {printf("%1s","cat")}' > temp.txt
can i do the same using echo ?If So, how?
Thanks
JS (2 Replies)
Discussion started by: jisha
2 Replies
3. Shell Programming and Scripting
hi,
just wanted to make a shortcut of this one
a="a b c"
b=`echo $a | awk '{print $2}'`
echo "the middle is $b"
why can't i do this:
a="a b c"
echo "the middle is ${`echo $a | awk '{print $2}'`}" <- bad substitution :wall:
thanks (6 Replies)
Discussion started by: h0ujun
6 Replies
4. Shell Programming and Scripting
Hi,
I have a script which looks like this.
Input file
data1^20
data2^30
#!/bin/sh
file"/home/Test.txt"
while read line
do
echo $line |awk 'BEGIN { FS = "^" } ; { print $2 }'
echo $line |awk 'BEGIN { FS = "^" } ; { print $1 }' | gzip | wc -c
done <"$file"
How can i... (4 Replies)
Discussion started by: chetan.c
4 Replies
5. Shell Programming and Scripting
Hello all,
I wrote this command line for some calculation on my given input files based on another input file which is a txt file.
while read BAM REGION; do samtools view $BAM $REGION | awk '{if ($2==0) print $0}' | wc -l >>log.txt; echo "$REGION"; done >> log.txt <regions.txt
It takes... (4 Replies)
Discussion started by: @man
4 Replies
6. Shell Programming and Scripting
# echo 'export HISTFILE=/var/log/history/history_$(uname -n)_$(date +%Y:%b:%d:%H:%M)_$(who am i | awk '{print \$1}')' >> new_file
#
# cat new_file
export HISTFILE=/var/log/history/history_$(uname -n)_$(date +%Y:%b:%d:%H:%M)_$(who am i | awk {print $1})
#
Now how to echo the quotes around the... (2 Replies)
Discussion started by: proactiveaditya
2 Replies
7. Shell Programming and Scripting
i have a script that has many lines similar to:
echo $var | awk -F"--" '{print $2}'
as you can see, two commands are being run here. echo and awk.
id like to combine this into one awk statement.
i tried:
awk -F"--" "BEGIN{print $var; print $2}"
but i get error messages. (10 Replies)
Discussion started by: SkySmart
10 Replies
8. Shell Programming and Scripting
Stumped with the formatting of the awk output when used with variables, e.g.:
awk -F, 'BEGIN {OFS=","} print {$2,$3,$4}' $infile1
produces the desired output (with rows), but when echoing the variable below, the output is one continuous line
var1=$(awk -F, 'BEGIN {OFS=","} print... (4 Replies)
Discussion started by: ux4me
4 Replies
9. Shell Programming and Scripting
Hello,
I've been trying to find the answer to this with Google and trying to browse the forums, but I haven't been able to come up with anything. If this has already been answered, please link me to the thread as I can't find it.
I've been asked to write a script that pulls a list of our CPE... (51 Replies)
Discussion started by: rwalker
51 Replies
10. UNIX for Beginners Questions & Answers
Hi,
I am generating a YAML file from a hosts file, but am having trouble saving it to a new file.
hosts file
127.0.0.1 localhost
192.168.1.2 host1
192.168.1.3 host2
192.168.1.4 host3
192.168.1.5 host4
YAML file
$ echo 'host_entries:' && awk '{printf " %s:\n ip:... (3 Replies)
Discussion started by: sand1234
3 Replies
MAX(3) 1 MAX(3)
max - Find highest value
SYNOPSIS
mixed max (array $values)
DESCRIPTION
mixed max (mixed $value1, mixed $value2, [mixed $...])
If the first and only parameter is an array, max(3) returns the highest value in that array. If at least two parameters are provided,
max(3) returns the biggest of these values.
Note
Values of different types will be compared using the standard comparison rules. For instance, a non-numeric string will be com-
pared to an integer as though it were 0, but multiple string values will be compared alphanumerically. The actual value returned
will be of the original type with no conversion applied.
PARAMETERS
o $values
- An array containing the values.
o $value1
- Any comparable value.
o $value2
- Any comparable value.
o $...
- Any comparable value.
RETURN VALUES
max(3) returns the parameter value considered "highest" according to standard comparisons. If multiple values of different types evaluate
as equal (e.g. 0 and 'abc') the first provided to the function will be returned.
EXAMPLES
Example #1
Example uses of max(3)
<?php
echo max(2, 3, 1, 6, 7); // 7
echo max(array(2, 4, 5)); // 5
// The string 'hello' when compared to an int is treated as 0
// Since the two values are equal, the order they are provided determines the result
echo max(0, 'hello'); // 0
echo max('hello', 0); // hello
// Here we are comparing -1 < 0, so 'hello' is the highest value
echo max('hello', -1); // hello
// With multiple arrays of different lengths, max returns the longest
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)
// Multiple arrays of the same length are compared from left to right
// so in our example: 2 == 2, but 5 > 4
$val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)
// If both an array and non-array are given, the array will be returned
// as comparisons treat arrays as greater than any other value
$val = max('string', array(2, 5, 7), 42); // array(2, 5, 7)
// If one argument is NULL or a boolean, it will be compared against
// other values using the rule FALSE < TRUE regardless of the other types involved
// In the below example, -10 is treated as TRUE in the comparison
$val = max(-10, FALSE); // -10
// 0, on the other hand, is treated as FALSE, so is "lower than" TRUE
$val = max(0, TRUE); // TRUE
?>
SEE ALSO
min(3), count(3).
PHP Documentation Group MAX(3)