Sponsored Content
Top Forums Shell Programming and Scripting Extended grep not matching some patterns Post 303009947 by wisecracker on Friday 22nd of December 2017 04:16:46 PM
Old 12-22-2017
Hi rovf...
Longhand OSX 10.12.1, default bash terminal.
As Don has suggeted with his code it works with the given sample and fine it is.

However...
Code:
Last login: Fri Dec 22 20:42:33 on ttys000
AMIGA:barrywalker~> echo 'localhost subscriptions='["production", "masters", "fileserver", "cldb", "nfs"]' handler="genie"
> host1.localhost.com a=apple
> host2.localhost.com b=ball c=cat' > /tmp/test
AMIGA:barrywalker~> 
AMIGA:barrywalker~> cat /tmp/test
localhost subscriptions=[production, masters, fileserver, cldb, nfs] handler="genie"
host1.localhost.com a=apple
host2.localhost.com b=ball c=cat
AMIGA:barrywalker~> 
AMIGA:barrywalker~> grep -Eo '[[:alpha:]]+=([[:alpha:]]+|"[^"]*"'"|'[^']+')" /tmp/test
handler="genie"
a=apple
b=ball
c=cat
AMIGA:barrywalker~> 
AMIGA:barrywalker~> echo 'localhost subscriptions='["production", "masters", "fileserver", "cldb", "nfs"]' handler="genie"
> host1.localhost.com a=apple
> host2.localhost.com b=ball c==' > /tmp/test
AMIGA:barrywalker~> 
AMIGA:barrywalker~> cat /tmp/test
localhost subscriptions=[production, masters, fileserver, cldb, nfs] handler="genie"
host1.localhost.com a=apple
host2.localhost.com b=ball c==
AMIGA:barrywalker~> 
AMIGA:barrywalker~> grep -Eo '[[:alpha:]]+=([[:alpha:]]+|"[^"]*"'"|'[^']+')" /tmp/test
handler="genie"
a=apple
b=ball
AMIGA:barrywalker~> 
AMIGA:barrywalker~> # WHERE is the 'c' variable?
AMIGA:barrywalker~> _

As the OP hasn't given any reference to whether any variables are going to have other '=' in its string leading or otherwise then this could much more difficult than Don's solution.
I am not proficient enough on grep to solve it, but I see difficulties when they arrive.
For example: this for variable 'c' c=x=cat gives the result c=x . Although bash can accept it, doesn't mean a utility can without some serious thought. Who is to say that the OP's post doesn't have any number of '=' inside any one variable string.
As I don't know enough about the absolute subtleties of grep I will have to leave it to pros like Don et al to give their excellent advice...
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

matching 3 patterns in shell script

IN a file I need to check for 3 patterns if all the 3 patterns are in the file. I need to send out an email. All this needs to be done in korn shell script. Please advise. (1 Reply)
Discussion started by: saibsk
1 Replies

2. Shell Programming and Scripting

removing certain paragraphs for matching patterns

Hi, I have a log file which might have certain paragraphs. Switch not possible Error code 1234 Process number 678 Log not available Error code 567 Process number 874 ..... ...... ...... Now I create an exception file like this. cat text.exp Error code 1234 Process number 874 (7 Replies)
Discussion started by: kaushys
7 Replies

3. Shell Programming and Scripting

AWK: matching patterns in 2 different files

In a directory, there are two different file extensions (*.txt and *.xyz) having similar names of numerical strings (*). The (*.txt) contains 5000 multiple files and the (*.xyz) also contains 5000 multiple files. Each of the files has around 4000 rows and 8 columns, with several unique string... (5 Replies)
Discussion started by: asanjuan
5 Replies

4. Shell Programming and Scripting

Matching patterns

I have a file name in $f. If $f has "-" at the beginning, or "=", or does not have extension ".ry" or ".xt" or ".dat" then cerr would not be empty. Tried the following but having some problems. set cerr = `echo $f | awk '/^-|=|!.ry|!.xt|!.dat/'` (4 Replies)
Discussion started by: kristinu
4 Replies

5. Shell Programming and Scripting

print lines between 2 matching patterns

Hi Guys, I have file like below, I want to print all lines between test1231233 to its 10 occurrence(till line 41) test1231233 qwe qwe qweq123 test1231233 qwe qwe qweq23 test1231233 qwe qwe qweq123 test1231233 qwe qwe qweq123131 (3 Replies)
Discussion started by: jagnikam
3 Replies

6. UNIX for Dummies Questions & Answers

Find records with matching patterns

Hi, I need to find records with a search string from a file. Search strings are provided in a file. For eg. search_String.txt file is like below chicago mexico newark sanhose and the file from where the records need to be fetched is given below src_file:... (1 Reply)
Discussion started by: sbhuvana20
1 Replies

7. UNIX for Dummies Questions & Answers

Search and extract matching patterns

%%%%% (9 Replies)
Discussion started by: lucasvs
9 Replies

8. UNIX for Dummies Questions & Answers

Matching two patterns in the consecutive lines

Hi Experts I need to match 2 patterns consecutively and display 25 lines after that. 1st one - Error 2nd one - End string ( comes along with the pattern one) 3rd one - error Logic grep "ERROR OCCURRED :" trace.log | awk -v "ES=:" -v "SS=java.lang.NullPointerException" '{ if($NF ~... (8 Replies)
Discussion started by: senthil.ak
8 Replies

9. Shell Programming and Scripting

Finding matching patterns in two files

Hi, I have requirement to find the matching patterns of two files in Unix. One file is the log file and the other is the error list file. If any pattern in the log file matches the list of errors in the error list file, then I would need to find the counts of the match. For example, ... (5 Replies)
Discussion started by: Bobby_2000
5 Replies

10. Shell Programming and Scripting

Delete patterns matching

Delete patterns matching OS version: RHEL 7.3 Shell : Bash I have a file like below (pattern.txt). I need to delete all lines starting with the following words (words separated by comma below) and ) character. LOGGING, NOCOMPRESS, TABLESPACE , PCTFREE, INITRANS, MAXTRANS, STORAGE,... (3 Replies)
Discussion started by: John K
3 Replies
MYSQL_CONNECT(3)							 1							  MYSQL_CONNECT(3)

mysql_connect - Open a connection to a MySQL Server

SYNOPSIS
Warning This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: omysqli_connect(3) o PDO::__construct resource mysql_connect ([string $server = ini_get("mysql.default_host")], [string $username = ini_get("mysql.default_user")], [string $password = ini_get("mysql.default_password")], [bool $new_link = false], [int $client_flags]) DESCRIPTION
Opens or reuses a connection to a MySQL server. o $server - The MySQL server. It can also include a port number. e.g. "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for the localhost. If the PHP directive mysql.default_host is undefined (default), then the default value is 'localhost:3306'. In SQL safe mode, this parameter is ignored and value 'localhost:3306' is always used. o $username - The username. Default value is defined by mysql.default_user. In SQL safe mode, this parameter is ignored and the name of the user that owns the server process is used. o $password - The password. Default value is defined by mysql.default_password. In SQL safe mode, this parameter is ignored and empty password is used. o $new_link - If a second call is made to mysql_connect(3) with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. The $new_link parameter modifies this behavior and makes mysql_connect(3) always open a new link, even if mysql_connect(3) was called before with the same parameters. In SQL safe mode, this parameter is ignored. o $client_flags - The $client_flags parameter can be a combination of the following constants: 128 (enable LOAD DATA LOCAL handling), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE. Read the section about "MySQL client constants" for further information. In SQL safe mode, this parameter is ignored. Returns a MySQL link identifier on success or FALSE on failure. +--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.5.0 | | | | | | | This function will generate an E_DEPRECATED | | | error. | | | | | 4.3.0 | | | | | | | Added the $client_flags parameter. | | | | | 4.2.0 | | | | | | | Added the $new_link parameter. | | | | +--------+---------------------------------------------------+ Example #1 mysql_connect(3) example <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?> Example #2 mysql_connect(3) example using hostname:port syntax <?php // we connect to example.com and port 3307 $link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); // we connect to localhost at port 3307 $link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?> Example #3 mysql_connect(3) example using ":/path/to/socket" syntax <?php // we connect to localhost and socket e.g. /tmp/mysql.sock // variant 1: omit localhost $link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); // variant 2: with localhost $link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?> Note Whenever you specify "localhost" or "localhost:port" as server, the MySQL client library will override this and try to connect to a local socket (named pipe on Windows). If you want to use TCP/IP, use "127.0.0.1" instead of "localhost". If the MySQL client library tries to connect to the wrong local socket, you should set the correct path as "" in your PHP configuration and leave the server field blank. Note The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling mysql_close(3). Note You can suppress the error message on failure by prepending a @ to the function name. Note Error "Can't create TCP/IP socket (10106)" usually means that the variables_order configure directive doesn't contain character E. On Windows, if the environment is not copied the SYSTEMROOT environment variable won't be available and PHP will have problems load- ing Winsock. mysql_pconnect(3), mysql_close(3). PHP Documentation Group MYSQL_CONNECT(3)
All times are GMT -4. The time now is 05:23 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy