Sponsored Content
Top Forums Shell Programming and Scripting How to read the output of a command line by line and pass it as a variable? Post 303004112 by bakunin on Tuesday 26th of September 2017 05:06:10 PM
Old 09-26-2017
""

Quote:
Originally Posted by Samah
I tried using while loop with no luck and unsure what exactly is missing in my code.
I would perhaps be able to tell you that, provided i could see it. As it is my crystal ball is currently in repair and i cannot see the code on your computer from here.

I can still tell you how to write a while-loop, though, because it should provide exactly what you want:

Code:
....
InFile="/path/to/your/inputfile"
line=""

while read line ; do
     echo "the line read: $line"
done < "$InFile"

This will read the content of the (text-)file "/path/to/your/inputfile" and output it line by line with a prefixed text of "the line read: ". The content of the line in question is in the variable "line" which you can use to base your own code on.

Notice that this will fail if the file is DOS-style formatted (that is, has CR/LF-line separators instead of the UNIX-style newline characters).

If the file contains things you want to filter out before processing it (like i.e. shell-style comments) you can use a filter to pipe into the while-loop like this (replace "<b>" and "<t>" with literal blank/tab characters, the sed-command removes leading/trailing whitespace, comments and empty lines):
Code:
....
InFile="/path/to/your/inputfile"
line=""

sed 's/#.*//;s/^[<b><t>]*//;s[<b><t>]*$//;/^$/d' "$InFile" |\
while read line ; do
     echo "the line read: $line"
done

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

read a file as input and pass each line to another script

Hi, I am trying to write a ftp script which will read a file for filenames and ftp those files to another server. Here's my ftp script, but it's scanning the current directory for file names. My question is how can I pass multiple files (these files will have the name of data files that need to... (0 Replies)
Discussion started by: sajjad02
0 Replies

2. UNIX for Dummies Questions & Answers

Assigning the output of a command to a variable, where there may be >1 line returned?

Hello I am using unix CLI commands for the Synergy CM software. The command basically searches for a folder ID and returns the names of the projects the folder sits in. The result is assigned to a variable: FIND_USE=`ccm folder -fu -u -f "%name"-"%version" ${FOLDER_ID}` When the command... (6 Replies)
Discussion started by: Glyn_Mo
6 Replies

3. Shell Programming and Scripting

Pass command line argument to variable

Hi, I had written a shell script to pass command line argument to variable in a function. Here is my code: main if ; then .$1 echo $1 get_input_file else echo "input file $1 is not available" fi get_input_file() { FILE = "$1" echo $FILE } (10 Replies)
Discussion started by: Poonamol
10 Replies

4. Shell Programming and Scripting

Blank as variable/output when run from command line

When I run this: PDHDURL=`/usr/bin/curl --silent http://www.phdcomics.com/comics.php | /usr/bin/grep -o http://www.phdcomics.com/comics/archive/.*.gif | head -1` echo -e "$PHDURL" It is totally blank. However, when I just run it from the terminal: /usr/bin/curl --silent... (2 Replies)
Discussion started by: killer54291
2 Replies

5. Shell Programming and Scripting

How to read a file line by line and store it in a variable to execute a program ?

Hello, I am quite new in shell scripting and I would like to write a little scritp to run a program on some parameters files. all my parameters files are in the same directory, so pick them up with ls *.para >>dirafter that I have a dir file like that: param1.para param2.para etc... I... (2 Replies)
Discussion started by: shadok
2 Replies

6. Shell Programming and Scripting

read line and run a different command according to the output

Hi. I'm trying to write a script that reads a line on a file and runs a different command for a different line output. For example, if it finds the word "Kuku" on the line it sends mail to Kuku@kuku.com. Otherwise, it sends mail to Lulu@lulu.com. TIA. (2 Replies)
Discussion started by: Doojek9
2 Replies

7. Shell Programming and Scripting

Passing the value of variable which is read from command line in called script

Hi, I am calling a Perl script in my shell script. When Perl script is executed it asks for a answer to be entered by user from terminal. How can i pass that value from my shell script ?? I know I can change perl script to default the answer but i dont have access to do that so only option i... (5 Replies)
Discussion started by: varun22486
5 Replies

8. Shell Programming and Scripting

How to read a two files, line by line in UNIX script and how to assign shell variable to awk ..?

Input are file and file1 file contains store.bal product.bal category.bal admin.bal file1 contains flip.store.bal ::FFFF:BADC:CD28,::FFFF:558E:11C5,6,8,2,1,::FFFF:81C8:CA8B,::FFFF:BADC:CD28,1,0,0,0,::FFFF:81C8:11C5,2,1,0,0,::FFFF:81DC:3111,1,0,1,0 store.bal.... (2 Replies)
Discussion started by: veeruasu
2 Replies

9. Shell Programming and Scripting

Ksh: Read line parse characters into variable and remove the line if the date is older than 50 days

I have a test file with the following format, It contains the username_date when the user was locked from the database. $ cat lockedusers.txt TEST1_21062016 TEST2_02122015 TEST3_01032016 TEST4_01042016 I'm writing a ksh script and faced with this difficult scenario for my... (11 Replies)
Discussion started by: humble_learner
11 Replies

10. UNIX for Beginners Questions & Answers

Get an output of lines in pattern 1st line then 10th line then 11th line then 20th line and so on.

Input file: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (6 Replies)
Discussion started by: Sagar Singh
6 Replies
acctprc(8)						      System Manager's Manual							acctprc(8)

NAME
acctprc1, acctprc2, accton - Perform process-accounting procedures SYNOPSIS
acctprc1 [InFile] acctprc2 accton [OutFile] DESCRIPTION
The three acctprc commands, acctprc1, acctprc2, and accton, are used in the runacct shell procedure to produce process-accounting reports. acctprc1 [InFile] The acctprc1 command is used to read records from standard input that are in a format defined by the acct structure in the /usr/include/sys/acct.h header file. This process adds the login names that correspond to user IDs, and then writes corresponding ASCII records to standard output. For each process, the record format includes the following seven unheaded columns: The user ID column includes both traditional and assigned user identification numbers listed in the /etc/passwd file. The login name is the one used for the user ID in the /etc/passwd file. The number of seconds the process consumed when executed during prime-time hours. Prime-time and nonprime-time hours are defined in the /usr/sbin/acct/holidays file. The number of seconds the process consumed when executed during nonprime-time hours. Total number of characters transferred. Total number of blocks read and written. Mean memory size (in kilobyte units). When specified, InFile contains a list of login sessions in a format defined by the utmp structure in the /usr/include/utmp.h header file. The login session records are sorted according to user ID and login name. When InFile is not specified, acctprc1 gets login names from the password file /etc/passwd. The information in InFile is used to distinguish different login names that share the same user ID. acctprc2 The acctprc2 command reads, from standard input, the records written by acctprc1, summarizes them according to user ID and name, and writes sorted summaries to standard output as total accounting records in the tacct format (see the acctmerg command). accton [OutFile] When no parameters are specified with the accton command, account processing is turned off. When you specify an existing OutFile file, process accounting is turned on, and the kernel adds records to that file. You must specify an Outfile to start process accounting. Many shell script procedures expect the file name /var/adm/pacct, the standard process-accounting file. EXAMPLES
To add a user name to each process-accounting record in a binary file and then write these modified binary-file records to an ASCII file named out.file, enter the following line to an accounting shell script: /usr/sbin/acct/acctprc1 < /var/adm/pacct >out.file A user name is added to each record. The raw data in the pacct file is converted to ASCII and added to file out.file. To produce a total binary accounting record of the ASCII output file out.file produced in example 1, enter the following line to an accounting shell script: /usr/sbin/acct/acctprc2 < out.file > /var/adm/acct/nite/daytacct The resulting binary total accounting file, written in the acct format, contains records sorted by user ID. This sorted user ID file, is usually merged with other total accounting records when an acctmerg command is processed to produce a daily summary accounting record called /var/adm/acct/sum/daytacct. To turn on process accounting, enter: /usr/sbin/acct/accton /var/adm/pacct To turn off process accounting, enter: /usr/sbin/acct/accton FILES
Specifies the command path. Specifies the command path. Specifies the command path. RELATED INFORMATION
Commands: acct(8), acctcms(8), acctmerg(8), runacct(8) Functions: acct(2) delim off acctprc(8)
All times are GMT -4. The time now is 09:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy