Sponsored Content
Top Forums Shell Programming and Scripting awk question : system output to awk variable. Post 302797491 by Yoda on Monday 22nd of April 2013 04:17:06 PM
Old 04-22-2013
An excerpt from awk manual
Code:
expression | getline [var]

Read a record of input from a stream piped from the output of a command. The stream will be created if no stream is currently open with the value 
of expression as its command name. The stream created will be equivalent to one created by a call to the popen() function with the value of expression 
as the command argument and a value of r as the mode argument. As long as the stream remains open, subsequent calls in which expression evaluates 
to the same string value will read subsequent records from the file. The stream will remain open until the close function is called with an expression 
that evaluates to the same string value. At that time, the stream will be closed as if by a call to the pclose() function. If var is missing, $0 and 
NF will be set; otherwise, var will be set. The getline operator can form ambiguous constructs when there are 
unparenthesised operators (including concatenate) to the left of the "|" (to the beginning of the expression containing getline). 
In the context of the "$" operator, "|" behaves as if it had a lower precedence than "$". The result of evaluating other operators is 
unspecified, and portable applications must parenthesis properly all such usages.

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

how to output awk to a variable

Hi folks, I am wondering how to output awk back to a variable. I am new to Unix/Linux. I am trying to get rid of a decimal number and put the output back in a variable for further use in the script. here is how I used awk: var=$1 echo $var |awk '{print $1 *100}' | $var echo $var this... (4 Replies)
Discussion started by: bashirpopal
4 Replies

2. Shell Programming and Scripting

can I pass awk variable to system command?

I wanna use a system function to deal with several data. So I use awk variable FILENAME to transfer the file directory to system command, but it does not work. I use a shell function "out_function" to deal with data and save the result in another directory with the same file name. How can I... (2 Replies)
Discussion started by: zhynxn
2 Replies

3. Shell Programming and Scripting

AWK Output into a variable

Hi I am trying to store the output of awk into a variable in a shell script. I can run it successfully from the command line but not from a ksh shell script. ls -al test.txt | grep -v grep | awk '{print $1}' returns -rw-r--r-- #!/bin/ksh perm=$(`ls -al test.txt | grep -v grep | awk... (2 Replies)
Discussion started by: mace_560
2 Replies

4. Shell Programming and Scripting

awk output in a variable

Not sure why it is not working the following : set -- $@ stype ="a" for shell_args in "$@" do $stype=` awk '{print substr ("'"$shell_args"'", 0, 3)}' ` echo $stype done Thank you (5 Replies)
Discussion started by: andaluzia
5 Replies

5. Shell Programming and Scripting

system () output into file in awk

hello, I want to print my output into a file inside of awk, but I don't know it could wokr with using system (piping the $1-4 to another shellskript): cat file.txt |awk '{ if ($5==2) {dataname=$1 "_" $2 "_" $3 "_" $4 "_typing.rad" befehl=".gen_test " $7 " " $8 " " $8 system(befehl) >... (5 Replies)
Discussion started by: ergy1983
5 Replies

6. Shell Programming and Scripting

Capturing awk's system(cmd) output

Hi everybody, I am working on a bigger awk script in which one part is comparing the size of two files. I want to evaluate which file is bigger and then just save the bigger one. I got it all working except for the part where I want to figure out which file is bigger; the one awk is currently... (2 Replies)
Discussion started by: iMeal
2 Replies

7. Shell Programming and Scripting

using awk for setting variable but change the output of this variable within awk

Hi all, Hope someone can help me out here. I have this BASH script (see below) My problem lies with the variable path. The output of the command find will give me several fields. The 9th field is the path. I want to captured that and the I want to filter this to a specific level. The... (6 Replies)
Discussion started by: Cowardly
6 Replies

8. Shell Programming and Scripting

help on awk---- need to assign the output of awk to a variable

hi i want to find the size of a folder and assign it to a variable and then compare if it is greater than 1 gb. i am doin this script, but it is throwing error.... #!/bin/ksh cd . | du -s | size = awk '{print $1}' if size >= 112000 then echo size high fi ERROR : (4 Replies)
Discussion started by: Nithz
4 Replies

9. Shell Programming and Scripting

Awk: How to get an awk variable out to the shell, using system() ?

I am reasonably capable with awk and its quirks, but not with shell weirdness. This has to be Bourne Shell for portability reasons. I have an awk program that is working just fine; it handles multiple input streams and produces several reports, based on the request (-v Variables). In addition... (3 Replies)
Discussion started by: DerekAsirvadem
3 Replies

10. UNIX for Beginners Questions & Answers

Using variable output in awk

Hi, I am trying to use variable output in awk to append a string to a word in a line. But that is not happening. Could you please help me on this. YouTube Video Tutorial: How to Use Code Tags and Format Posts @UNIX.com The below is the code #!/bin/ksh set -x src=/users/oracle/Temp... (2 Replies)
Discussion started by: pvmanikandan
2 Replies
POPEN(3)						   BSD Library Functions Manual 						  POPEN(3)

NAME
pclose, popen -- process I/O LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <stdio.h> FILE * popen(const char *command, const char *mode); int pclose(FILE *stream); DESCRIPTION
The popen() function ``opens'' a process by creating a bidirectional pipe, forking, and invoking the shell. Any streams opened by previous popen() calls in the parent process are closed in the new child process. Historically, popen() was implemented with a unidirectional pipe; hence, many implementations of popen() only allow the mode argument to specify reading or writing, not both. Because popen() is now imple- mented using a bidirectional pipe, the mode argument may request a bidirectional data flow. The mode argument is a pointer to a null-termi- nated string which must be 'r' for reading, 'w' for writing, or 'r+' for reading and writing. The command argument is a pointer to a null-terminated string containing a shell command line. This command is passed to /bin/sh, using the -c flag; interpretation, if any, is performed by the shell. The return value from popen() is a normal standard I/O stream in all respects, save that it must be closed with pclose() rather than fclose(). Writing to such a stream writes to the standard input of the command; the command's standard output is the same as that of the process that called popen(), unless this is altered by the command itself. Conversely, reading from a ``popened'' stream reads the command's standard output, and the command's standard input is the same as that of the process that called popen(). Note that output popen() streams are fully buffered, by default. The pclose() function waits for the associated process to terminate; it returns the exit status of the command, as returned by wait4(2). RETURN VALUES
The popen() function returns NULL if the fork(2) or pipe(2) calls fail, or if it cannot allocate memory. The pclose() function returns -1 if stream is not associated with a ``popened'' command, if stream already ``pclosed'', or if wait4(2) returns an error. ERRORS
The popen() function does not reliably set errno. SEE ALSO
sh(1), fork(2), pipe(2), wait4(2), fclose(3), fflush(3), fopen(3), stdio(3), system(3) BUGS
Since the standard input of a command opened for reading shares its seek offset with the process that called popen(), if the original process has done a buffered read, the command's input position may not be as expected. Similarly, the output from a command opened for writing may become intermingled with that of the original process. The latter can be avoided by calling fflush(3) before popen(). Failure to execute the shell is indistinguishable from the shell's failure to execute command, or an immediate exit of the command. The only hint is an exit status of 127. The popen() function always calls sh(1), never calls csh(1). HISTORY
A popen() and a pclose() function appeared in Version 7 AT&T UNIX. Bidirectional functionality was added in FreeBSD 2.2.6. BSD
May 3, 1995 BSD
All times are GMT -4. The time now is 05:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy