Confusion in working of carat(^) symbol

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Confusion in working of carat(^) symbol
# 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.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Confusion with PS

Hello All, I have a problem in counting number of process getting run with my current script name.. Here it is ps -ef | grep $0 | grep -v grep This display just one line with the PID, PPID and other details when i print it in the script. But when I want to count the numbers in my... (11 Replies)
Discussion started by: sathyaonnuix
11 Replies

2. Shell Programming and Scripting

Stripping of a symbol from string not working properly

Hi All, I used this code to strip-off $-symbol from string values. a="$980" b="897" a=`echo "$a" | sed 's/$/ /g'` b=`echo "$b" | sed 's/$/ /g'` echo "$a" echo "$b" but this results in the output: 80 and 897 it works when i use a='$987' b='890' (13 Replies)
Discussion started by: angie1234
13 Replies

3. Shell Programming and Scripting

conditional confusion

Hell Unix.com Community: I am working on a personal project using yad v0.12.4 (zenity fork) and have hit a wall on how to show a progress bar while my function is processing. I have been all over the ABS Guide, googled 21 Linux-specific sites that I revere. I even asked on the yad-common... (4 Replies)
Discussion started by: Habitual
4 Replies

4. Solaris

/usr/lib/passwdutil.so.1: symbol __nsl_fgetspent_r: referenced symbol not found

deleteing post (0 Replies)
Discussion started by: dshakey
0 Replies

5. UNIX for Dummies Questions & Answers

'tr' confusion

Good day, everyone! Could anybody explain me the following situation. If I'm running similar script: Var="anna.kurnikova" Var2="Anna Kurn" echo $Var | tr -t "$Var" "$Var2" Why the output is : anna KurniKova instead of Anna Kurnikova? :confused: Thank you in advance for any... (2 Replies)
Discussion started by: Nafanja
2 Replies

6. UNIX for Dummies Questions & Answers

Invoke URL's from file and comment with # symbol which are not working

Hi All, my intention is read urls from a file (what ever url's it may be) but the url's which are not opening i.e which displays 404 , page not found error and so on should be commented in the file with # symbol. for the correct url's : nothing to be done(except script should validate... (0 Replies)
Discussion started by: gsp
0 Replies

7. UNIX for Dummies Questions & Answers

wc command confusion

Can somebody explain it to me that why wc gives more chars suppose Ab.txt have two lines qwer qasd then wc -c ab.txt will give 10.why not 8.okay may be it is taking count one for each line just in case but why echo "qwer"|wc -C gives 5. Ok with \c it is returning 4. :) (6 Replies)
Discussion started by: Dhruva
6 Replies

8. UNIX for Dummies Questions & Answers

unix confusion

:confused: some one please tell me where i can possibly find out what is unix 10.2 and the basic system functions of it is. I really need help! (1 Reply)
Discussion started by: tribb24
1 Replies

9. Shell Programming and Scripting

confusion with export

Hi, I have written the following two scripts. a.ksh ---> FPATH=/users/kushard autoload b b echo "From a.ksh::" $aa b ---> function b { typeset aa aa="TRUE." echo "From b::" $aa export aa } (1 Reply)
Discussion started by: kdipankar
1 Replies
Login or Register to Ask a Question