If condition to check one file newer than the other - first file name uncertain
Dear All,
I'm new to unix scripting. I'm trying to write an utility script which has to check if one file is newer than another one. The condition is I dont know the full name of the first file. I searched google and this forum for any such examples, but couldn't find any or may be I would have missed it.
I wrote this simple check using if, but it is not working.
If i give a definite file name, it prints "file found", but when I use an *, even if the file is present it says "file not found"
I will have to use the wildcard charcater * bcoz each time the text following "xyz" is different.
Could anyone please tell me how to fix this.
Your help is much appreciated.
Thanks
Last edited by Yogesh Sawant; 07-10-2009 at 04:27 AM..
Reason: added code tags
Hi
I am writing a script file which sends the log files along with their size in a folder named log to a file called temp.log using the following cmd:
ls -st 190_GSTV_HUX_003QISCGSK026** >> /home/user/temp.log
the temp.log looks like this:
16 190_GSTV_HUX_003QISCGSK026_message070321.log
... (11 Replies)
Hi,
I have a text file, foo.txt, it looks something like below. In the file there is a line that gives the date in the form of: Mon Jun 15 11:09:31 2008. I need to find which date is the newest and then store certain details of that list data to another file. So, in this sample text file, I... (6 Replies)
Hi,
I need to execute a crontab based on a condition where one SH file should be executed only based on the output of a file in a folder.
I have written the following cron job which is not working.
00 01 * * * read a < /px/batch/reslut.txt && && sh /px/batch/check.sh
where my... (2 Replies)
I know how to check if any file has a unix process using a file by looking at 'lsof <fullpath/filename>' command.
I think using lsof is very expensive. Also to make it accurate we need to inlcude fullpath of the file.
Is there another command that can tell if a file has a truely active... (12 Replies)
This should be a simple script, but can't find one with google search.
I just need to find the file that is in many directories, then overwrite that file with a newer version i.e.
find file.jar then overwrite with /root/file.jar
All I get in searches is substitute text with new test inside... (1 Reply)
CMD=$(find "${Release_Container}" -iname "${Release_Name}"_Release.txt)
for i in `cat $CMD`
do
if ];then
cd ${Sandbox_dir}
CMD1=$(find "${Sandbox_dir}"/* -iname "${Release_Name}" -type d | awk -F/ '{print $(NF)}' | head -1 )
if ];then
echo -e "################### CHECKOUT START... (2 Replies)
Hello,
Can you please help me one this:
I have two servers: Server A and server B.
Every day on 03.00AM in only one on these two servers (randomly)is generated one file, lets say file.txt.
I want to copy this file also to the other server.
I want to create a perl script that does... (2 Replies)
I am fairly new to programming and trying to resolve this problem. I have the file like this.
CHROM POS REF ALT 10_sample.bam 11_sample.bam 12_sample.bam 13_sample.bam 14_sample.bam 15_sample.bam 16_sample.bam
tg93 77 T C T T T T T
tg93 79 ... (4 Replies)
Dear All,
I'm new to unix scripting. I'm trying to write an utility script which has to check if one file is newer than another one. $3 $4 $5 $6 are files .txt. Help me please.
for i in $3 $4 $5 $6
do
if
then
echo "$1 is newer than $i"
else
echo "$i is newer than $1"
fi (9 Replies)
I only want the file copied if it is newer. But it still copies the file?
zip -u Ubuntu_Documents.zip ./*
cp -u Ubuntu_Documents.zip $DOCS_Backup/Ubuntu_Documents_`date +"%Y-%m-%d-%H-%M"`.zip (5 Replies)
Discussion started by: drew77
5 Replies
LEARN ABOUT PHP
preg_match
PREG_MATCH(3) 1 PREG_MATCH(3)preg_match - Perform a regular expression matchSYNOPSIS
int preg_match (string $pattern, string $subject, [array &$matches], [int $flags], [int $offset])
DESCRIPTION
Searches $subject for a match to the regular expression given in $pattern.
PARAMETERS
o $pattern
- The pattern to search for, as a string.
o $subject
- The input string.
o $matches
- If $matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full
pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.
o $flags
-$flags can be the following flag:
o PREG_OFFSET_CAPTURE - If this flag is passed, for every occurring match the appendant string offset will also be returned.
Note that this changes the value of $matches into an array where every element is an array consisting of the matched string
at offset 0 and its string offset into $subject at offset 1.
o $offset
- Normally, the search starts from the beginning of the subject string. The optional parameter $offset can be used to specify the
alternate place from which to start the search (in bytes).
Note
Using $offset is not equivalent to passing substr($subject, $offset) to preg_match(3) in place of the subject string,
because $pattern can contain assertions such as ^, $ or (?<=x). Compare:
<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>
The above example will output:
Array
(
)
while this example
<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>
will produce
Array
(
[0] => Array
(
[0] => def
[1] => 0
)
)
RETURN VALUES preg_match(3) returns 1 if the $pattern matches given $subject, 0 if it does not, or FALSE if an error occurred.
Warning
This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on
Booleans for more information. Use the === operator for testing the return value of this function.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 5.3.6 | |
| | |
| | Returns FALSE if $offset is higher than $subject |
| | length. |
| | |
| 5.2.2 | |
| | |
| | Named subpatterns now accept the syntax |
| | (?<name>) and (?'name') as well as (?P<name>). |
| | Previous versions accepted only (?P<name>). |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
Find the string of text "php"
<?php
// The "i" after the pattern delimiter indicates a case-insensitive search
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>
Example #2
Find the word "web"
<?php
/* The in the pattern indicates a word boundary, so only the distinct
* word "web" is matched, and not a word partial like "webbing" or "cobweb" */
if (preg_match("/web/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
if (preg_match("/web/i", "PHP is the website scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>
Example #3
Getting the domain name out of a URL
<?php
// get host name from URL
preg_match('@^(?:http://)?([^/]+)@i',
"http://www.php.net/index.html", $matches);
$host = $matches[1];
// get last two segments of host name
preg_match('/[^.]+.[^.]+$/', $host, $matches);
echo "domain name is: {$matches[0]}
";
?>
The above example will output:
domain name is: php.net
Example #4
Using named subpattern
<?php
$str = 'foobar: 2008';
preg_match('/(?P<name>w+): (?P<digit>d+)/', $str, $matches);
/* This also works in PHP 5.2.2 (PCRE 7.0) and later, however
* the above form is recommended for backwards compatibility */
// preg_match('/(?<name>w+): (?<digit>d+)/', $str, $matches);
print_r($matches);
?>
The above example will output:
Array
(
[0] => foobar: 2008
[name] => foobar
[1] => foobar
[digit] => 2008
[2] => 2008
)
NOTES
Tip
Do not use preg_match(3) if you only want to check if one string is contained in another string. Use strpos(3) or strstr(3) instead
as they will be faster.
SEE ALSO
PCRE Patterns, preg_quote(3), preg_match_all(3), preg_replace(3), preg_split(3), preg_last_error(3).
PHP Documentation Group PREG_MATCH(3)