Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Multiple variables to be passed in a loop Post 302950764 by bakunin on Tuesday 28th of July 2015 12:25:52 PM
Old 07-28-2015
You might want to give this a try:

Code:
while IFS="=" read part1 part2 ; do
     print - "part1 is: $part1   part2 is $part2"
done < /path/to/file

Where file might contain:

Code:
part1=part2
a=b
foo=bar

Instead of a file you can use a pipeline or a here-document as well, i.e.:

Code:
some-command | while IFS="=" read part1 part2 ; do
     print - "part1 is: $part1   part2 is $part2"
done


The interesting part of the code is this:

Code:
IFS="<some-char>" read var1 var2 [var3....]

Setting the IFS variable to some character means the input is split up into "words" at exactly this character. The variables ("var1", "var2", ...) are assigned these words one after the other. If your input would look like this:

Code:
foo:bar:bas
bla:blub:whatever
1:2:3

You could write:
Code:
IFS=":" read first second third
echo $first
echo $second
echo $third

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

for loop with multiple variables ?

I have a script which selects two 'sets' of system LVM device files from a tabular file 'mapfile' using awk : LIVELV=`awk '{print($1)}' mapfile` BCVLV=`awk '{print($3)}' mapfile` I wanted to pass these 'sets' into an LVM command 'loop' along the lines of : lvmerge $BCVLV $LIVELV ie.... (3 Replies)
Discussion started by: fosterian
3 Replies

2. Shell Programming and Scripting

While loop with Multiple variables

Hi , I am trying to write a script in kshell with while loop ,its like count=1 count_cmp=1 while ; do tail -$count tempfile | head -1 > tempstring ....... done However i get CIF.sh: line 33: ' I have checked thetrailing spaces , not sure what is... (4 Replies)
Discussion started by: amit1_x
4 Replies

3. UNIX for Dummies Questions & Answers

multiple variables in for loop

hi, I want an equivalent for loop for this C code in unix shell script... for(int i,int j;i<5;i++,j++) { } Please reply soon Regards Navjot (1 Reply)
Discussion started by: navjotsingh
1 Replies

4. Shell Programming and Scripting

How to use for/while loop with multiple variables?

Hi, I have two variables like below which will always be of the same size a=1:2:3 b=A:B:C I need to use a for/while loop that will have both the variables available. I cannot use an array here and will probably might iterate through the variable as echo $a | tr ':' '\n' and thus iterate... (5 Replies)
Discussion started by: Elizabeth H
5 Replies

5. Shell Programming and Scripting

Multiple bash variables passed into nawk

I have a file that has 2 fields called b_file: 11977 DAR.V3.20150209.1.CSV 3295 DAR.V3.20150209.1.CSV 1721 DAR.V2.20150210.1.CSV I need to search a sftplog using the field 1, but want to maintain the relationship between field 1 and 2. I am passing field 1 as a parameter in a bash loop. ... (14 Replies)
Discussion started by: smenago
14 Replies

6. UNIX for Dummies Questions & Answers

Reading multiple variables in a loop

Hi, I managed to read and print variable as shown in the below code. table_name=table1,table2,table3 i=0 IFS="," for i in $table_name do echo $i done Is there a way how I can read more than one variable. For example I need to read 2 variables and populate the output... (6 Replies)
Discussion started by: shash
6 Replies

7. Shell Programming and Scripting

Loop with multiple delimited variables

hi, i need a portion in a audit logging shell script where i have to loop thru multiple variables. I need some help in accomplishing this. i have 3 variables var1=1,23,234 var2=a,ab,xyz var3=0,0,0 the variables will have variables number of values but same length.(3 in this case ) i... (10 Replies)
Discussion started by: rock1
10 Replies

8. Shell Programming and Scripting

Multiple variables using awk and for loop for web form submission

Hi My goal is to fill an HTML form and submit. What I have managed to do: 1. curl command to fill up the form and submit 2. a file which has the input curl command: curl -v -b cookie.txt -d __CSRFToken__=dc23d5da47953b3b390ec68d972af10380908b14 -d do=create -d a=open -d... (10 Replies)
Discussion started by: zorrox
10 Replies

9. UNIX for Beginners Questions & Answers

Displaying multiple variables in for loop

Hi! I've run into a problem where my variables are displayed in the wrong order. Basically I'm supposed to use a file that has information like this username:firstname:lastname:etc:etc. What I'm interested in doing is reformating it into a something more like this: username lastname,... (2 Replies)
Discussion started by: reindeermountai
2 Replies
Subtitles(3pm)						User Contributed Perl Documentation					    Subtitles(3pm)

NAME
Subtitles - handle video subtitles in various text formats DESCRIPTION
Video files (avi mpeg etc) are sometimes accompanied with subtitles, which are currently very popular as text files. "Subtitles" provides means for simple loading, re-timing, and storing these subtitle files. A command-line tool subs for the same purpose and using "Subtitles" interface is included in the distribution. The module supports "srt", "sub", "smi", and "mdvd" subtitle formats. Time values are floats, in seconds with millisecond precision. SYNOPSIS
use Subtitles; my $sub = Subtitles->new(); open F, 'Ichi The Killer.sub' or die "Cannot read:$!"; die "Cannot load:$@ " unless $sub-> load(*F); close F; # back two minutes $sub-> shift( $sub-> parse_time('-02:00')); # re-frame from 25 fps $sub-> scale( 23.976 / 25 ); # or both $sub-> transform( -120, 0.96); $sub-> transform( -120, 0.96, 0, $sub-> length - 60); # split in 2 my ( $part1, $part2) = $sub-> split( $self-> length / 2); # join back with 5-second gap $part1-> join( $part2, 5); # save open F, "> out.sub" or die "Cannot write:$! "; $part1-> save( *F); close F; # report print "sub is ", time2str( $sub-> length); API
Package methods codecs Returns array of installed codecs. hms2time HOURS, MINUTES, SECONDS, MILLISECONDS Combines four parameters into float time in seconds. time2hms TIME Splits time into four integers, - hours, minutes, seconds, and milliseconds. If time is less than zero, zero times are returned. time2shms Splits time into five integers, - time sign, hours, minutes, seconds, and milliseconds. time2str TIME Converts time to a human-readable string. Object methods clear Removes all content codec [ STRING ] If STRING is not defined, returns currently associated codec. Otherwise, sets the new codec in association. The STRING is the codec's package name, such as "Subtitles::Codec::srt". dup [ CLEAR ] Duplicates object instance in deep-copy fashion. If CLEAR flag is set, timeframes are not copied. join GUEST, GAP Adds content of object GUEST at the end of the list of subtitles with GAP in seconds. length Returns length of subtitle span. load FH [ CODEC ] Reads subtitle content into object. If successful, returns 1; otherwise undef is returned and $@ contains the error. By default, tries to deduce which codec to use; to point the selection explicitly CODEC string is to be used. lines Returns number of subtitle cues. new Creates a new instance. To force a particular codec, supply "codec" string here. parse_time STRING Parses STRING which is either a "[[HH:]MM:]SS[,MSEC]" string or string in a format specific to a codec, for example, number of a frame. rate FPS Forces a particluar frame-per-second rate, if a codec can make use of it. save FH Writes content of instance into FH file handle, using the associated codec. scale A Changes time-scale. If A is 2, the subtitles go off 2 times slower, if 0.5 - two times faster, etc. shift B Shifts timings by B seconds. B can be negative. split TIME Splits the content of the instance between two newly created instances of the same class, by TIME, and returns these. The both resulting subtitles begin at time 0. transform A, B [FROM, TO] Applies linear transformation to the time-scale, such as "u = At + B" where "t" is the original time and "u" is the result. If FROM and TO brackets are set, the changes are applied only to the lines in the timeframe between these. BUGS
This is alpha code, more a proof-of-concept rather that anything else, so most surely bugs are lurking. Anyway: not all subtitle types are recognized. The modules doesn't handle multi-language subtitles. SEE ALSO
subs - command-line wrapper for this module THANKS
<http://dvd.box.sk/>, <http://subs.2ya.com>. AUTHOR
Dmitry Karasik, <dmitry@karasik.eu.org>. perl v5.14.2 2012-02-14 Subtitles(3pm)
All times are GMT -4. The time now is 07:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy