Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #14986
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!news.swapon.de!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Matthew Carter <m@ahungry.com> |
| Newsgroups | comp.lang.php |
| Subject | Re: Run AWK using shell_exec |
| Date | Fri, 27 Feb 2015 00:28:52 -0500 |
| Organization | Ahungry (http://ahungry.com) |
| Lines | 58 |
| Message-ID | <87sidrrkh7.fsf@ahungry.com> (permalink) |
| References | <bd5897d2-065d-4cf1-bd7f-cbcb3404cb25@googlegroups.com> <mcoev3$bt4$1@dont-email.me> <98db9ab8-dec1-4b3a-b790-285e967c64bb@googlegroups.com> <87egpcozxq.fsf@bsb.me.uk> <75f1d7f7-e73e-452c-acb6-07ac2c0fff0f@googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain |
| Injection-Info | mx02.eternal-september.org; posting-host="7c986cd4736462de309a749b207746fe"; logging-data="20235"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+K+T82dHWdyRfKQXg7S9R2" |
| User-Agent | Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
| Cancel-Lock | sha1:Z0abzYcSgzOj/dN8FeSk/t4EOSc= sha1:3/CJf8DG1nJCa0j3BIphDbvYqZA= |
| Xref | csiph.com comp.lang.php:14986 |
Show key headers only | View raw
"Dan'l B" <dan.hinckley@gmail.com> writes:
> On Thursday, February 26, 2015 at 9:23:19 PM UTC-5, Ben Bacarisse wrote:
>> "Dan'l B" <> writes:
>> <snip>
>> > Substituting a variable containing a path-to-the file, I can't seem to
>> > get the escaping right:
>> >
>> > Works:
>> > $maxLow = shell_exec("/usr/bin/awk 'min==\"\" || $4~/^[^[:alpha:]]+$/
>> > && $4 < min {min=$4} END{print min}' fullyear.txt");
>> >
>> > Fails: (where $tidesFilePath is an absolute path to the fullyear.txt file).
>> > $tidesFilePath = "/Tidefiles/fullyear.txt"; (example path)
>> > $maxLow = shell_exec("/usr/bin/awk 'min==\"\" || $4~/^[^[:alpha:]]+$/
>> > && $4 < min {min=$4} END{print min}'" . $tidesFilePath . \"");
>>
>> That's not syntactically correct PHP. I'm not sure what the . \"" bit
>> at the end is supposed to do, but you don't need it. You *do* need a
>> space between the end of the awk script in single quotes and the file
>> name:
>>
>> ... $4 < min {min=$4} END{print min}' " . $tidesFilePath);
>>
>> But you should be very careful when including variables into a shell
>> command. Never forget little Bobby Tables http://www.xkcd.com/327/
>>
> Thanks, still doesn't seem to work but I'll double-check the path. I
> do grasp the problem of variables in shell commands but is there an
> alternative way to get the highest and lowest values in a column of
> text in a multi-column text file using only PHP?
This works on your sample data:
<?php
$data = array_filter (array_map (
function ($l)
{
return explode (' ', preg_replace ('/\s+/', ' ', $l))[3];
}, explode ("\n", file_get_contents ('/tmp/hi-low'))), 'is_numeric');
sort ($data);
$d1 = $d2 = $data; // This is done incase there is only one entry
$low = array_shift ($d1);
$hi = array_pop ($d2);
var_dump ($low, $hi);
Fine tune as needed of course (this assumes one or more whitespace such
as tab or space breaks the 'columns'). You'd probably want your data to
stick to a real column format, such as CSV or TSV though.
--
Matthew Carter (m@ahungry.com)
http://ahungry.com
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Run AWK using shell_exec "Dan'l B" <dan.hinckley@gmail.com> - 2015-02-26 14:40 -0800
Re: Run AWK using shell_exec Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-26 19:50 -0500
Re: Run AWK using shell_exec "Dan'l B" <dan.hinckley@gmail.com> - 2015-02-26 17:21 -0800
Re: Run AWK using shell_exec "Dan'l B" <dan.hinckley@gmail.com> - 2015-02-26 17:41 -0800
Re: Run AWK using shell_exec Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-26 20:51 -0500
Re: Run AWK using shell_exec Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-02-27 02:23 +0000
Re: Run AWK using shell_exec "Dan'l B" <dan.hinckley@gmail.com> - 2015-02-26 19:11 -0800
Re: Run AWK using shell_exec Matthew Carter <m@ahungry.com> - 2015-02-27 00:28 -0500
Re: Run AWK using shell_exec Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-02-27 11:14 +0000
Re: Run AWK using shell_exec Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-02-27 14:17 +0100
Re: Run AWK using shell_exec "Dan'l B" <dan.hinckley@gmail.com> - 2015-02-27 11:40 -0800
Re: Run AWK using shell_exec Jerry Stuckle <jstucklex@attglobal.net> - 2015-02-27 16:03 -0500
csiph-web