08-13-2019
You are right - the
pos variable is
split into the
var array. Then, in all input lines (
$0),
gensub (a specific
gawk function) replaces the characters (no matter what they are!) at the positions in
var by the pipe symbol, as said in
man gawk:
Quote:
gensub(regexp, replacement, how [, target])
Search the target string target for matches of the regular expression regexp. If how is a string beginning with ‘g' or ‘G' (short for “global”¯), then replace all matches of regexp with replacement. Otherwise, treat how as a number indicating which match of regexp to replace. Treat numeric values less than one as if they were one. If no target is supplied, use $0. Return the modified string as the result of the function. The original target string is not changed.
This User Gave Thanks to RudiC For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Is it possible to have a pattern as RS in awk. For Example pl. go through the statement;
"
Account Serial Number: 88888888
TT00X000000XXXXXXXXXXXXX
SS00X000000XX.000,XXXXXXXXXXXXXXXXXX0000XXXXXXX0000000000
WW00X0000000XX000000000000MMMMMMM MMMMMMM0000AA11110000000000000000000000000... (1 Reply)
Discussion started by: raguramtgr
1 Replies
2. UNIX for Dummies Questions & Answers
I have gone through all the threads in the forum and tested out different things. I am trying to split a 3GB file into multiple files. Some files are even larger than this.
For example:
split -l 3000000 filename.txt
This is very slow and it splits the file with 3 million records in each... (10 Replies)
Discussion started by: madhunk
10 Replies
3. UNIX for Dummies Questions & Answers
Hi ,
I want to assign a value to variable which will have size of the file that is
we have following files for eg:
ls -ltr
-rw-rw-r-- 1 dsadmin dstage 34 Oct 29 12:14 some.txt
-rw-rw-r-- 1 dsadmin dstage 0 Oct 29 14:52 eg.txt
-rwxrwxr-x 1 dsadmin dstage 1453 Oct... (2 Replies)
Discussion started by: Amey Joshi
2 Replies
4. Shell Programming and Scripting
Hi,
$ echo "Hellooo" | gawk '{print gensub(/o{3}/, "z", 1)}'
doesn't return "Hellz" as expected while:
$ echo "Hellooo" | awk '{print gensub(/o+/, "z", 1)}' produces "Hellz" correctly. Are the {m,n} quantifiers not supported in gensub?
I know that sub or gsub could do the job. It's just an... (2 Replies)
Discussion started by: ripat
2 Replies
5. UNIX for Dummies Questions & Answers
Hi Unix.com !
I would need some help for something I don't understand :confused:
input:
111|2 Y Z blue.
333|4 W X blue.; 5 Y Z red.
666|7 W X red.; 8 Y Z blue.
999|10 U V red.; 11 W X blue.; 12 Y Z red.
From $2, I would like to remove the sub-strings containing "blue" (and the... (4 Replies)
Discussion started by: beca123456
4 Replies
6. Shell Programming and Scripting
Hello;
I have a file consists of 4 columns separated by tab. The problem is the third fields. Some of the them are very long but can be split by the vertical bar "|". Also some of them do not contain the string "UniProt", but I could ignore it at this moment, and sort the file afterwards. Here is... (5 Replies)
Discussion started by: yifangt
5 Replies
7. Shell Programming and Scripting
Hi,
I have a sample file in the following format.
000013560240|000013560240|001|P|155|99396|0||SS00325665|
000013560240|000013560240|002|P|17|99000|0||SS00325665|
000013560240|000013560240|002|F|-17|99000|0|R|SS00325665|
000013560240|000013560240|003|P|20|82270|0||SS00325665|... (3 Replies)
Discussion started by: nua7
3 Replies
8. Shell Programming and Scripting
Hi
I have strings like these :
Vengeance mitt
Men Vengeance gloves
Women Quatro Windstopper Etip gloves
Quatro Windstopper Etip gloves
Girls Thermobite hooded jacket
Thermobite Triclimate snow jacket
Boys Thermobite Triclimate snow jacket
and I would like to get the lower case words at... (2 Replies)
Discussion started by: louisJ
2 Replies
9. Shell Programming and Scripting
I am trying to run the awk below. My question is when I split the input, then run anotherawk to perform a calculation using that splitas the input there are no issues. When I try to combine them the output is not correct, is the split not working or did I do it wrong? Thank you :).
input
... (8 Replies)
Discussion started by: cmccabe
8 Replies
10. Programming
Hello gurus,
I have data in one of the oracle tables as as below:
Column 1 Column 2
1 NY,NJ,CA
2 US,UK,
3 AS,EU,NA
fyi, Column 2 above has data delimited with a comma as shown.
I need a sql query the produce the below output in two columns... (5 Replies)
Discussion started by: calredd
5 Replies
LEARN ABOUT PHP
mysqlnd_ms_query_is_select
MYSQLND_MS_QUERY_IS_SELECT(3) 1 MYSQLND_MS_QUERY_IS_SELECT(3)
mysqlnd_ms_query_is_select - Find whether to send the query to the master, the slave or the last used MySQL server
SYNOPSIS
int mysqlnd_ms_query_is_select (string $query)
DESCRIPTION
Finds whether to send the query to the master, the slave or the last used MySQL server.
The plugins built-in read/write split mechanism will be used to analyze the query string to make a recommendation where to send the query.
The built-in read/write split mechanism is very basic and simple. The plugin will recommend sending all queries to the MySQL replication
master server but those which begin with SELECT, or begin with a SQL hint which enforces sending the query to a slave server. Due to the
basic but fast algorithm the plugin may propose to run some read-only statements such as SHOW TABLES on the replication master.
PARAMETERS
o $query
- Query string to test.
RETURN VALUES
A return value of MYSQLND_MS_QUERY_USE_MASTER indicates that the query should be send to the MySQL replication master server. The function
returns a value of MYSQLND_MS_QUERY_USE_SLAVE if the query can be run on a slave because it is considered read-only. A value of
MYSQLND_MS_QUERY_USE_LAST_USED is returned to recommend running the query on the last used server. This can either be a MySQL replication
master server or a MySQL replication slave server.
If read write splitting has been disabled by setting mysqlnd_ms.disable_rw_split, the function will always return
MYSQLND_MS_QUERY_USE_MASTER or MYSQLND_MS_QUERY_USE_LAST_USED.
EXAMPLES
Example #1
mysqlnd_ms_query_is_select(3) example
<?php
function is_select($query)
{
switch (mysqlnd_ms_query_is_select($query))
{
case MYSQLND_MS_QUERY_USE_MASTER:
printf("'%s' should be run on the master.
", $query);
break;
case MYSQLND_MS_QUERY_USE_SLAVE:
printf("'%s' should be run on a slave.
", $query);
break;
case MYSQLND_MS_QUERY_USE_LAST_USED:
printf("'%s' should be run on the server that has run the previous query
", $query);
break;
default:
printf("No suggestion where to run the '%s', fallback to master recommended
", $query);
break;
}
}
is_select("INSERT INTO test(id) VALUES (1)");
is_select("SELECT 1 FROM DUAL");
is_select("/*" . MYSQLND_MS_LAST_USED_SWITCH . "*/SELECT 2 FROM DUAL");
?>
The above example will output:
INSERT INTO test(id) VALUES (1) should be run on the master.
SELECT 1 FROM DUAL should be run on a slave.
/*ms=last_used*/SELECT 2 FROM DUAL should be run on the server that has run the previous query
SEE ALSO
Predefined Constants, user filter .Runtime configuration, mysqlnd_ms.disable_rw_split, mysqlnd_ms.enable.
PHP Documentation Group MYSQLND_MS_QUERY_IS_SELECT(3)