Confusion in working of carat(^) symbol

 
Thread Tools Search this Thread
# 1  
Old 12-21-2017
Confusion in working of carat(^) symbol

hi All,

i have googled and found that below are the functionality of carat symbol
Meaning of carat is
Code:
"at the beginning of line"; 
"it can also negate matches"

how do i know when carat is behaving as beginning of line or as a negate.

regards,
scriptor
# 2  
Old 12-21-2017
From the context. First we need to know that you seem to be talking of regexes, because a carat can have even more meanings, e.g. exponentiation in several programming languages, upper case conversion in certain shells' "Case Modification Parameter Expansion", or used to produce characters like in the French locale.
In regexes, if used as the first character in a matching pattern, it anchors the pattern at BOL. If not the first character, it is treated as is, i.e. there must be a carat in the text to match the carat in the regex.
In a bracket expression, if the list begins with '^', it matches any single character not from the rest of the list.

Last edited by RudiC; 12-21-2017 at 07:42 AM..
# 3  
Old 12-21-2017
Hi Rudic,
didn't understand below line
Code:
 
 In a bracket expression, if the list begins with '^', it matches any single character not from the rest of the list.

I create a file

Code:
 
 cat test.txt 
no color
No color

I do the following
Code:
 
 # grep ^[^nN] test.txt  ---> this gives no output why so ?

Code:
 
 # grep ^[nN] test.txt-------> this gives o/p
no color
No color

# 4  
Old 12-21-2017
In a [character set] if the first character is ^ it means NOT the following character set.
^[^nN] means at the beginning of the line there must be a character that is not n or N.
BTW please always put grep regular expression in "quotes" or 'quotes'. Then it is guaranteed that the shell does not try to make any expansion but passes the string to grep as is.
Code:
grep "^[^nN]" test.txt

# 5  
Old 12-21-2017
One thing to also note is that
Code:
grep "^[^nN]"

also removes empty lines (since it does not start with a non-n or N character), whereas
Code:
grep -v "^[nN]"

does not remove empty lines
# 6  
Old 12-22-2017
HI MadeInGermany

when you say
Code:
In a [character set] if the first character is ^ it means NOT the following character set.

then the below command should not give O/P but it is giving. by say not the following character I mean
Code:
nN

.
so ideally it should not give any output.
Code:
 
  
 grep ^[nN] test.txt

# 7  
Old 12-22-2017
Code:
grep "^[nN]" test.txt

matches at the beginning of the line an n or N
Code:
no color
No color

Both lines match.

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
ACL confusion hburnswell UNIX for Advanced & Expert Users 4 10-17-2017 02:10 AM
If then statement confusion cogiz UNIX for Beginners Questions & Answers 1 12-08-2016 09:31 AM
Confusion with ++ operator Abhishek_kumar UNIX for Dummies Questions & Answers 5 08-24-2014 04:58 AM
iptables Confusion knightfirefx IP Networking 1 08-22-2014 06:47 AM
Confusion in hash scriptscript Shell Programming and Scripting 1 09-06-2013 10:47 AM
Confusion with PS sathyaonnuix Shell Programming and Scripting 11 09-28-2012 07:01 AM
Stripping of a symbol from string not working properly angie1234 Shell Programming and Scripting 13 03-29-2012 01:10 PM
conditional confusion Habitual Shell Programming and Scripting 4 07-07-2011 11:47 AM
const_cast confusion StuartH Programming 4 01-24-2011 12:22 AM
/usr/lib/passwdutil.so.1: symbol __nsl_fgetspent_r: referenced symbol not found dshakey Solaris 0 03-18-2010 03:11 PM
LDAP; confusion rsheikh Security 0 03-05-2010 03:20 PM
'tr' confusion Nafanja UNIX for Dummies Questions & Answers 2 12-05-2007 11:47 PM
Invoke URL's from file and comment with # symbol which are not working gsp UNIX for Dummies Questions & Answers 0 08-23-2007 03:55 AM
wc command confusion Dhruva UNIX for Dummies Questions & Answers 6 09-08-2006 07:25 AM
Please help me clear up some confusion RoY_mUnSoN UNIX for Dummies Questions & Answers 2 02-25-2004 05:39 PM