Sponsored Content
Full Discussion: False positive grep?
Top Forums Shell Programming and Scripting False positive grep? Post 303045879 by Chubler_XL on Thursday 16th of April 2020 05:55:04 PM
Old 04-16-2020
I do remember you being quite concerned with performance in this SWARM stuff and I would have thought the bash =~ operator could be use in place of grep.

Code:
$ export NUM='[['
$ time bash -c 'echo "$NUM" | grep -q "^\[\[" && echo yes'
yes

real    0m0.200s
user    0m0.000s
sys     0m0.107s
$ time bash -c '[[ "$NUM" =~ ^\[\[ ]] && echo yes'
yes

real    0m0.099s
user    0m0.015s
sys     0m0.046s

Twice as fast on my system, but your mileage may vary
This User Gave Thanks to Chubler_XL For This Post:
 

8 More Discussions You Might Find Interesting

1. Linux

bin\false

We have requirments to not allow a userid login abilities but allow users to 'su' to it. In solaris I normally set the shell in /etc/passwd to bin/false. THis does not work on Linux, any suggestions would help. (1 Reply)
Discussion started by: bryanthomas
1 Replies

2. Shell Programming and Scripting

false use of sed???

i want to delete every newline and every line which starts with "RECORD......." in a file. FILE: Record 61391 in base BROCKHAUS (Timestamp: 2008-04-09 11:38:38) UNTERTITEL : Gräfin (seit 1707 Reichsgräfin) von, * Schwerin 4. 2. 1686, + Berlin 21. 10. 1744; wurde Record 61392 in base BROCKHAUS... (4 Replies)
Discussion started by: trek
4 Replies

3. Shell Programming and Scripting

Why is it always false?

Hi, I'm new to UNIX and am trying to learn shell scripting in order to work on an interface that I inherited when a co-worker left. I need to be able to check to see whether a file exists to determine whether the FTP has taken place, but in testing, the if statement always evaluates as false,... (3 Replies)
Discussion started by: JeffR
3 Replies

4. Shell Programming and Scripting

False Condition

Hi All, I am using the below Script to enter a line in the File: #!/bin/ksh # To delete the last line if it contains the pattern Redirect permanent / Virgin Atlantic Airways - Popup echo "Enter the URL that should point to the particular microsite" read url # To delete the last line if it... (0 Replies)
Discussion started by: Shazin
0 Replies

5. IP Networking

false tcp connection

Why this happens? How to solve this? $netstat -na |grep 9325 tcp 0 0 127.0.0.1:9325 127.0.0.1:9325 ESTABLISHED When a client socket repeatedly tries to connect to an inactive(no server socket is listening on this port) local port,connect succeeds. ... (1 Reply)
Discussion started by: johnbach
1 Replies

6. AIX

Gid=0 and 7 + admin=FALSE

Checking configuration access files for an AIX server, left me wondering about this :confused:: If a user is added to system group, it gets gid=0 with some security risks because it gets some root kind of file access level. Is this insecure condition kept if the user has admin variable... (0 Replies)
Discussion started by: bkiddo
0 Replies

7. UNIX for Dummies Questions & Answers

Tail with positive offset

I have read the below from the book bash cookbook.Tail +1 filenames is similar to cat filename I have tried the same in Ubuntu 11.10 with bash. 4.0 . I have received error for the Same. May I know in which system that will work fine ? Thanks (1 Reply)
Discussion started by: pandeesh
1 Replies

8. Shell Programming and Scripting

False alerts

Hi I have written a script to send email alerts when load of my linux server reaches max point I keep getting false emails thought the load is normal , looks like same email is generated again and again - called from cron tab checked if the tempfile is present , no it is not , cleaned... (22 Replies)
Discussion started by: anil529
22 Replies
PICK(1) 							     [nmh-1.5]								   PICK(1)

NAME
pick - search for messages by content SYNOPSIS
pick [+folder] [msgs] [-and ...] [-or ...] [-not ...] [-lbrace ... -rbrace] [--component pattern] [-cc pattern] [-date pattern] [-from pattern] [-search pattern] [-subject pattern] [-to pattern] [-after date] [-before date] [-datefield field] [-sequence name ...] [-public | -nopublic] [-zero | -nozero] [-list | -nolist] [-version] [-help] typical usage: scan `pick -from jones` pick -to holloway -sequence select show `pick -before friday` DESCRIPTION
Pick searches within a folder for messages with the specified contents, and then identifies those messages. Two types of search primitives are available: pattern matching and date constraint operations. A modified grep(1) is used to perform the matching, so the full regular expression (see ed(1)) facility is available within pattern. With -search, pattern is used directly, and with the others, the grep pattern constructed is: `component[ ]*:.*pattern' This means that the pattern specified for a -search will be found everywhere in the message, including the header and the body, while the other pattern matching requests are limited to the single specified component. The expression `--component pattern' is a shorthand for specifying `-search "component[ ]*:.*pattern" ' It is used to pick a component which is not one of "To:", "cc:", "Date:", "From:", or "Subject:". An example is "pick --reply-to pooh". Pattern matching is performed on a per-line basis. Within the header of the message, each component is treated as one long line, but in the body, each line is separate. Lower-case letters in the search pattern will match either lower or upper case in the message, while upper case will match only upper case. Note that since the -date switch is a pattern matching operation (as described above), to find messages sent on a certain date the pattern string must match the text of the "Date:" field of the message. Independent of any pattern matching operations requested, the switches -after date or -before date may also be used to introduce date/time constraints on all of the messages. By default, the "Date:" field is consulted, but if another date yielding field (such as "BB-Posted:" or "Delivery-Date:") should be used, the -datefield field switch may be used. With -before and -after, pick will actually parse the date fields in each of the messages specified in `msgs' and compare them to the date/time specified. If -after is given, then only those messages whose "Date:" field value is chronologically after the date specified will be considered. The -before switch specifies the complimentary action. Both the -after and -before switches take legal 822-style date specifications as arguments. Pick will default certain missing fields so that the entire date need not be specified. These fields are (in order of defaulting): timezone, time and timezone, date, date and time- zone. All defaults are taken from the current date, time, and timezone. In addition to 822-style dates, pick will also recognize any of the days of the week ("sunday", "monday", and so on), and the special dates "today", "yesterday" (24 hours ago), and "tomorrow" (24 hours from now). All days of the week are judged to refer to a day in the past (e.g., telling pick "saturday" on a "tuesday" means "last saturday" not "this saturday"). Finally, in addition to these special specifications, pick will also honor a specification of the form "-dd", which means "dd days ago". Pick supports complex boolean operations on the searching primitives with the -and, -or, -not, and -lbrace ... -rbrace switches. For example, pick -after yesterday -and -lbrace -from freida -or -from fear -rbrace identifies messages recently sent by "frieda" or "fear". The matching primitives take precedence over the -not switch, which in turn takes precedence over -and which in turn takes precedence over -or. To override the default precedence, the -lbrace and -rbrace switches are provided, which act just like opening and closing parenthe- ses in logical expressions. If no search criteria are given, all the messages specified on the command line are selected (this defaults to "all"). Once the search has been performed, if the -list switch is given, the message numbers of the selected messages are written to the standard output separated by newlines. This is extremely useful for quickly generating arguments for other nmh programs by using the "backquoting" syntax of the shell. For example, the command scan `pick +todo -after "31 Mar 83 0123 PST"` says to scan those messages in the indicated folder which meet the appropriate criterion. Note that since pick's context changes are writ- ten out prior to scan's invocation, you need not give the folder argument to scan as well. The -sequence name switch may be given once for each sequence the user wishes to define. For each sequence named, that sequence will be defined to mean exactly those messages selected by pick. For example, pick -from frated -seq fred defines a new message sequence for the current folder called "fred" which contains exactly those messages that were selected. By default, pick will zero the sequence before adding it. This action can be disabled with the -nozero switch, which means that the mes- sages selected by pick will be added to the sequence, if it already exists, and any messages already a part of that sequence will remain so. The -public and -nopublic switches are used by pick in the same way mark uses them. FILES
$HOME/.mh_profile The user profile PROFILE COMPONENTS
Path: To determine the user's nmh directory Current-Folder: To find the default current folder SEE ALSO
mark(1) DEFAULTS
`+folder' defaults to the current folder `msgs' defaults to all `-datefield date' `-zero' `-list' is the default if no `-sequence', `-nolist' otherwise CONTEXT
If a folder is given, it will become the current folder. HISTORY
In previous versions of MH, the pick command would show, scan, or refile the selected messages. This was rather "inverted logic" from the UNIX point of view, so pick was changed to define sequences and output those sequences. Hence, pick can be used to generate the arguments for all other MH commands, instead of giving pick endless switches for invoking those commands itself. Also, previous versions of pick balked if you didn't specify a search string or a date/time constraint. The current version does not, and merely matches the messages you specify. This lets you type something like: show `pick last:20 -seq fear` instead of typing mark -add -nozero -seq fear last:20 show fear Finally, timezones used to be ignored when comparing dates: they aren't any more. HELPFUL HINTS
Use "pick sequence -list" to enumerate the messages in a sequence (such as for use by a shell script). BUGS
The argument to the -after and -before switches must be interpreted as a single token by the shell that invokes pick. Therefore, one must usually place the argument to this switch inside quotes. Furthermore, any occurrence of -datefield must occur prior to the -after or -before switch it applies to. If pick is used in a back-quoted operation, such as scan `pick -from jones` and pick selects no messages (e.g., no messages are from "jones"), then the shell will still run the outer command (e.g., scan). Since no messages were matched, pick produced no output, and the argument given to the outer command as a result of backquoting pick is empty. In the case of nmh programs, the outer command now acts as if the default `msg' or `msgs' should be used (e.g., "all" in the case of scan). To prevent this unexpected behavior, if -list was given, and if its standard output is not a tty, then pick outputs the illegal message number "0" when it fails. This lets the outer command fail gracefully as well. The pattern syntax "[l-r]" is not supported; each letter to be matched must be included within the square brackets. MH.6.8 11 June 2012 PICK(1)
All times are GMT -4. The time now is 04:01 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy