When you need to protect special characters on the command line, you need to use quoting. However, as you've found, if the special characters are the quote symbols themselves, you can run into trouble.
One solution for some versions of grep is to have the pattern in a file so that it does not appear on the command line. That can be accomplished by using a here document to create the file. There are features in the here document syntax to ignore special characters, in addition to creating a file from within a script. Once that is done, we can use grep to read the regular expressions from the newly-created file. Here is an example:
producing:
Another method is to surround the regular expression on the command line with double quotes. Inside of double quotes you may have escaped double quotes, \", and single quotes. However, you may not have escaped single quotes within a single-quoted string.
See man pages for details. Good luck ... cheers, drl
i m trying the following command but its not working:
sed 's/find/\'replace\'/g' myFile
but the sed enters into new line
# sed 's/find/re\'place/g' myFile
>
I havn't any idea how to put single quote in my replace string. Your early help woud be appreciated. Thanx (2 Replies)
Hi Experts...
I am trying to find out separting the records which are staring with double quote(") and a six digit number(ex: 012456,987654,etc) from a file.
For example :
Source File :
"116462","SMITH CHEVR
"164098","SIMPS
"104498","SIMPSONVIL
"Export lments"
"Copyrts... (4 Replies)
Hi,
I search for the string below which contains a single quote,
some text '/home/myuser
in the file myfile.txt as another user with the grep command as follows
su - myuser -c "grep 'some text \'/home/myuser' myfile.txt"
I also tried using two backslashes
su - myuser... (6 Replies)
i want to replace mistaken quotes in line starting with tag 300 and relocate the quote in the correct position so the input is
223;25
224;20100428064823;1;0;0;0;0;0;0;0;8;1;3;9697;18744;;;;;;;;;;;;
300;X;Event:... (3 Replies)
Hello ,
I got html file , these file are normal html as we can see .
what i would like to do is in this html file , i want to print only string start with double quote and end with double quote by line by line.
<tr><td valign=top>25.</td><td><A... (8 Replies)
I need to check whether first character of variable is single quote.
I tried the below constructions but they are all not working (always return true)
if (test `echo "$REGEXP" |cut -c1` != "'"); then echo "TRUE"; fi
if (test `echo "$REGEXP" |cut -c1` != '\''); then echo "TRUE"; fi
if (test... (5 Replies)
Hi Froum.
I have tried in vain to find a solution for this problem - I'm trying to replace any double quotes within a quoted string with a single quote, leaving everything else as is.
I have the following data:
Before:
... (32 Replies)
Hi All ,
We have source data file as csv file and since data could contain commas ,each attribute is quoted into double quotes.However problem is that some of the attributa data also contain double quotes which is converted to double double quote while creating csv file
XLs data :
... (2 Replies)
From:
1,2,3,4,5,This is a test
6,7,8,9,0,"This, is a test"
1,9,2,8,3,"This is a ""test"""
4,7,3,1,8,""""
To:
1,2,3,4,5,This is a test
6,7,8,9,0,"This; is a test"
1,9,2,8,3,"This is a ''test''"
4,7,3,1,8,"''"Is there an easy syntax I'm overlooking? There will always be an odd number... (5 Replies)
Hello,
I'd like to print line if column 5th doesn't match with exm. But to reach there I have to make sure I match single quote.
I'm struggling to match that.
I've input file like:
Warning: Variants 'exm480340' and '5:137534453:G:C' have the same position.
Warning: Variants 'exm480345'... (9 Replies)
Discussion started by: genome
9 Replies
LEARN ABOUT OPENSOLARIS
echo
echo(1) User Commands echo(1)NAME
echo - echo arguments
SYNOPSIS
/usr/bin/echo [string]...
DESCRIPTION
The echo utility writes its arguments, separated by BLANKs and terminated by a NEWLINE, to the standard output. If there are no arguments,
only the NEWLINE character is written.
echo is useful for producing diagnostics in command files, for sending known data into a pipe, and for displaying the contents of environ-
ment variables.
The C shell, the Korn shell, and the Bourne shell all have echo built-in commands, which, by default, is invoked if the user calls echo
without a full pathname. See shell_builtins(1). sh's echo, ksh's echo, ksh93's echo, and /usr/bin/echo understand the back-slashed escape
characters, except that sh's echo does not understand a as the alert character. In addition, ksh's and ksh93's echo does not have an -n
option. sh's echo and /usr/bin/echo have an -n option if the SYSV3 environment variable is set (see ENVIRONMENT VARIABLES below). csh's
echo and /usr/ucb/echo, on the other hand, have an -n option, but do not understand the back-slashed escape characters. sh and ksh deter-
mine whether /usr/ucb/echo is found first in the PATH and, if so, they adapt the behavior of the echo builtin to match /usr/ucb/echo.
OPERANDS
The following operand is supported:
string A string to be written to standard output. If any operand is "-n", it is treated as a string, not an option. The following char-
acter sequences is recognized within any of the arguments:
a Alert character.
Backspace.
c Print line without new-line. All characters following the c in the argument are ignored.
f Form-feed.
New-line.
Carriage return.
Tab.
v Vertical tab.
\ Backslash.
n Where n is the 8-bit character whose ASCII code is the 1-, 2- or 3-digit octal number representing that character.
USAGE
Portable applications should not use -n (as the first argument) or escape sequences.
The printf(1) utility can be used portably to emulate any of the traditional behaviors of the echo utility as follows:
o The Solaris 2.6 operating environment or compatible version's /usr/bin/echo is equivalent to:
printf "%b
" "$*"
o The /usr/ucb/echo is equivalent to:
if [ "X$1" = "X-n" ]
then
shift
printf "%s" "$*"
else
printf "%s
" "$*"
fi
New applications are encouraged to use printf instead of echo.
EXAMPLES
Example 1 Finding how far below root your current directory is located
You can use echo to determine how many subdirectories below the root directory (/) is your current directory, as follows:
o Echo your current-working-directory's full pathname.
o Pipe the output through tr to translate the path's embedded slash-characters into space-characters.
o Pipe that output through wc -w for a count of the names in your path.
example% /usr/bin/echo $PWD | tr '/' ' ' | wc -w
See tr(1) and wc(1) for their functionality.
Below are the different flavors for echoing a string without a NEWLINE:
Example 2 /usr/bin/echo
example% /usr/bin/echo "$USER's current directory is $PWDc"
Example 3 sh/ksh shells
example$ echo "$USER's current directory is $PWDc"
Example 4 csh shell
example% echo -n "$USER's current directory is $PWD"
Example 5 /usr/ucb/echo
example% /usr/ucb/echo -n "$USER's current directory is $PWD"
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of echo: LANG, LC_ALL, LC_CTYPE, LC_MES-
SAGES, and NLSPATH.
SYSV3 This environment variable is used to provide compatibility with INTERACTIVE UNIX System and SCO UNIX installation scripts. It is
intended for compatibility only and should not be used in new scripts. This variable is applicable only for Solaris x86 platforms,
not Solaris SPARC systems.
EXIT STATUS
The following error values are returned:
0 Successful completion.
>0 An error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
|CSI |Enabled |
+-----------------------------+-----------------------------+
|Interface Stability |Committed |
+-----------------------------+-----------------------------+
|Standard |See standards(5). |
+-----------------------------+-----------------------------+
SEE ALSO ksh93(1), printf(1), shell_builtins(1), tr(1), wc(1), echo(1B), ascii(5), attributes(5), environ(5), standards(5)NOTES
When representing an 8-bit character by using the escape convention n, the n must always be preceded by the digit zero(0).
For example, typing: echo 'WARNING: 7' prints the phrase WARNING: and sounds the "bell" on your terminal. The use of single (or double)
quotes (or two backslashes) is required to protect the "" that precedes the "07".
Following the , up to three digits are used in constructing the octal output character. If, following the n, you want to echo addi-
tional digits that are not part of the octal representation, you must use the full 3-digit n. For example, if you want to echo "ESC 7" you
must use the three digits "033" rather than just the two digits "33" after the .
2 digits Incorrect: echo "