07-20-2011
Delimiters in awk
Line from input file
a : b : c " d " e " f : g : h " i " j " k " l
output
k b a
Its taking 7th word when " is the delimiter, 2nd and 1st word when : is the delimiter and returning all in one line.... I am on solaris
Thanks.....
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Is there anyway to get awk to treat multiple delimiters as one? Particularly spaces... (6 Replies)
Discussion started by: peter.herlihy
6 Replies
2. Shell Programming and Scripting
Hello,
I need use comma and spaces as field delimiters, but I can't:
text:
hello myfriend,I need,some help
I need something like:
awk -F"<blank>|," '{print $1, $3}'
Thanks (3 Replies)
Discussion started by: albertogarcia
3 Replies
3. Shell Programming and Scripting
I have the following string sample:
bla bla bla bla bla
I would like to extract the "123" using awk.
I thought about awk -F"]" '{ print $1 }' but it doesn't work
Any ideas ? (7 Replies)
Discussion started by: gdub
7 Replies
4. Shell Programming and Scripting
Hello,
this thread is more about scripting style than a specific issue.
I've to grep from a output some lines and from them obtain a specific entry delimited by < and >.
This is my way :
1) grep -i user list | awk '{FS="<";print $NF}' | sed -e 's/>//g'
2) grep -i user list | cut -d","... (10 Replies)
Discussion started by: gogol_bordello
10 Replies
5. UNIX for Dummies Questions & Answers
hi,
i have a file called file1.txt and it's contents are as below:
file1.txt:
-------
abc,123, thomas
dab,234,muller
gab,456,ram
The lookup file's contents are as below:
lookup.txt
----------
abc|japan
dcd|US
dab|china
gab|brazil (3 Replies)
Discussion started by: amar1003
3 Replies
6. Shell Programming and Scripting
I have a file having lines like:
14: <a="b" val="c"/>
18: <a="x" val="d"/>
54: <a="b" val="c"/>
58: <a="x" val="e"/>
I need to create a file with output:
14
d
54
e
So basically, for every odd line I need 1st word if delimiter is ':' and for every even... (14 Replies)
Discussion started by: shekhar2010us
14 Replies
7. Shell Programming and Scripting
Hi Folks,
This is the first time I ever encountered this situation
My input file is of this kind
cat input.txt
1 PAIXAF 0 1 1 -9 0 0 0 1 2 0 2 1 2 1
7 PAIXEM 0 7 1 -9 1 0 2 0 1 2 2 1 0 2
9 PAKZXY 0 2 1 -9 2 0 1 1 1 0 1 2 0 1
Till the sixth column (which is -9), I want my columns to... (4 Replies)
Discussion started by: jacobs.smith
4 Replies
8. UNIX for Dummies Questions & Answers
Code :
echo "1,2,3,4"|awk -F "," 'NR==n{$3=a}1' n=1 a=45
Output :
1 2 45 4
Expected :
1,2,45,4 (4 Replies)
Discussion started by: Rajesh_us
4 Replies
9. Shell Programming and Scripting
What to know the way to count the number of delimiters in each record by ignoring the escape delimiters.
Sample Data:
12345678|ABN\|XYZ MED CHEM PTY. LTD.|C||100.00|22|AB"C\|Corp|"XYZ|CDEF"|
I'm using awk -F'|' '{ print NF-1 }' command to find the number of delimiters. this command... (8 Replies)
Discussion started by: BrahmaNaiduA
8 Replies
10. Shell Programming and Scripting
I have a file which is separated by delimiter "|", but the prob is one of my column do contain delimiter as description so how can i differentiate it?
PS : the delmiter does have backslash coming before it, if occurring in column
Annual|Beleagured|Desc|Denver... (2 Replies)
Discussion started by: nikhil jain
2 Replies
LEARN ABOUT NETBSD
getline
GETDELIM(3) BSD Library Functions Manual GETDELIM(3)
NAME
getdelim, getline -- read a delimited record from a stream
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdio.h>
ssize_t
getdelim(char ** restrict lineptr, size_t * restrict n, int delimiter, FILE * restrict stream);
ssize_t
getline(char ** restrict lineptr, size_t * restrict n, FILE * restrict stream);
DESCRIPTION
The getdelim() function reads from the stream until it encounters a character matching delimiter, storing the input in *lineptr. The buffer
is NUL-terminated and includes the delimiter. The delimiter character must be representable as an unsigned char.
If *n is non-zero, then *lineptr must be pre-allocated to at least *n bytes. The buffer should be allocated dynamically; it must be possible
to free(3) *lineptr. getdelim() ensures that *lineptr is large enough to hold the input, updating *n to reflect the new size.
The getline() function is equivalent to getdelim() with delimiter set to the newline character.
RETURN VALUES
The getdelim() and getline() functions return the number of characters read, including the delimiter. If no characters were read and the
stream is at end-of-file, the functions return -1. If an error occurs, the functions return -1 and the global variable errno is set to indi-
cate the error.
The functions do not distinguish between end-of-file and error, and callers must use feof(3) and ferror(3) to determine which occurred.
EXAMPLES
The following code fragment reads lines from a file and writes them to standard output.
char *line = NULL;
size_t linesize = 0;
ssize_t linelen;
while ((linelen = getline(&line, &linesize, fp)) != -1)
fwrite(line, linelen, 1, stdout);
if (ferror(fp))
perror("getline");
ERRORS
[EINVAL] lineptr or n is a NULL pointer.
[EOVERFLOW] More than SSIZE_MAX characters were read without encountering the delimiter.
The getdelim() and getline() functions may also fail and set errno for any of the errors specified in the routines fflush(3), malloc(3),
read(2), stat(2), or realloc(3).
SEE ALSO
ferror(3), fgets(3), fopen(3)
STANDARDS
The getdelim() and getline() functions conform to IEEE Std 1003.1-2008 (``POSIX.1'').
BSD
June 30, 2010 BSD