String has * as the field delimiter and I need echo/awk to escape it, how?
Hi,
I am trying to read an Oracle listener log file line by line and need to separate the lines into several fields. The field delimiter for the line happens to be an asterisk.
I have the script below to start with but when running it, the echo command is globbing it to include other information that I don't need.
Below is a sample run of the script z.ksh
I've also tried doing awk -F "\*" and that does not make any difference besides giving the warning awk: warning: escape sequence `\*' treated as plain `*'
I also need to somehow extract the line below to each respective fields, i.e. CONNECT_DATA, PROGRAM, USER, SERVER, SERVICE_NAME,HOST and PORT .
Here's wishing Oracle could have provided something to parse their own log. Maybe there is a program/script/utility out there that can parse log files of any format?
I will have to somehow change the timestamp to YYYYMMDD. For the time being, I need to be able to get around the asterisk globbing to start with.
How can i set a variable field delimiter using awk??
I wanna do something like this ,but i canīt get the correct syntaxis :
VARI=TEST
echo "0121212TESTxvcshaashd"|awk 'FS="$VARI" {print $2}'
Thanks. (2 Replies)
Hello,
I had posted earlier about printing fields using AWK, but now I have a slightly different problem. I have text files in the format:
1*2,3,4,5
and wish to print the first, third, and fifth fields, including the asterisk and commas. In other words, after filtering it should look... (1 Reply)
Hello,
I need an awk script to receive a variable that's an decimal value such as 009 or 031 and then convert this value to an ascii character to use as the FS (field separator for the input file).
For example,
009 should be converted to an ascii tab
031 should be converted to an ascii... (1 Reply)
Dear All,
1.txt (tab in between each value in a line)
a b c
a b c
a c d
you can see below, why with ~ i can output with tab, but = cannot?
# awk -F'\t' '$2 ~ /b/' 1
a b c
a b c
# awk -F'\t' '$2 = "b"' 1
a b c
a b c
a b d
... (1 Reply)
Hi All,
I wanted to find 200th field value in delimiter file using awk.?
awk '{print $200}' inputfile
I am getting error message :-
awk: The field 200 must be in the range 0 to 199.
The source line number is 1.
The error context is
{print >>> $200 <<< }
using... (4 Replies)
Hello, I am using awk to match text in a tab separated field and am able to do so when matching the exact word. My problem is that I would like to match any sequence of text in the tab-separated field without having to match it all. Any help will be appreciated. Please see the code below.
awk... (3 Replies)
hi,
just wanted to make a shortcut of this one
a="a b c"
b=`echo $a | awk '{print $2}'`
echo "the middle is $b"
why can't i do this:
a="a b c"
echo "the middle is ${`echo $a | awk '{print $2}'`}" <- bad substitution :wall:
thanks (6 Replies)
Hi Experts,
i need to change delimiter from tab to ","
sample test file
cat test
A0000368 A29938511 072569352 5 Any 2 for Ģ1.00 BUTCHERS|CAT FOOD|400G Sep 12 2012 12:00AM Jan 5 2014 11:59PM Sep 7 2012 12:00AM M 2.000 group 5
... (2 Replies)
We have a csv file as mentioned below and the requirement is to change the date format in file as mentioned below.
Current file (file.csv)
----------------------
empname,date_of_join,dept,date_of_resignation
ram,08/09/2015,sales,21/06/2016
"akash,sahu",08/10/2015,IT,21/07/2016
... (6 Replies)
I will start with an example of what I'm trying to do and then describe how I am approaching the issue.
File
PS028,005
Lexeme HRS # M #
PhraseType 1(1:1) 7(7)
PhraseLab 501 503
ClauseType ZYq0
PS028,005
Lexeme W # L> # BNH # M #... (17 Replies)
Discussion started by: jvoot
17 Replies
LEARN ABOUT SUNOS
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 will be 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, will be invoked if the user calls
echo without a full pathname. See shell_builtins(1). sh's echo, ksh's echo, and /usr/bin/echo understand the back-slashed escape charac-
ters, except that sh's echo does not understand a as the alert character. In addition, ksh's echo, does not have an -n option. sh's echo
and /usr/bin/echo only have an -n option if the SYSV3 environment variable is set (see ENVIRONMENT VARIABLES below). If it is, none of the
backslashed characters mentioned above are available. csh's echo and /usr/ucb/echo, on the other hand, have an -n option, but do not under-
stand the back-slashed escape characters.
OPERANDS
The following operand is supported:
string A string to be written to standard output. If any operand is "-n", it will be treated as a string, not an option. The following
character sequences will be 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.
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 |Standard |
+-----------------------------+-----------------------------+
SEE ALSO echo(1B), printf(1), shell_builtins(1), tr(1), wc(1), 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' will print the phrase WARNING: and sound 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"0337 | od -xc
produces: df0a (hex)
337 (ascii)
3 digits Correct: echo "00337" | od -xc
produces: lb37 0a00 (hex)
033 7 (ascii)
For the octal equivalents of each character, see ascii(5).
SunOS 5.10 20 Jan 2000 echo(1)