On Sun, Dec 21, 2014 at 6:48 PM, Brian J. Rogers <[email protected]> wrote:
> I know how to read a file using bash, but what I want to do is use each > line in the file as a dependency to be passed into another command, but I > want all the lines read in and structured as arguments for the other > command. > > I'm using Effing Package Management <https://github.com/jordansissel/fpm> > (FPM) > to test out building some RPMs before I go through the process of learning > to do it with Koji or something else. FPM has proven to be very simple for > me, which is why I'm using it. When executing it, it has a flag that > denotes a dependency and what version is required. It looks like this: > > -d "{dependency-package} >= {version}" > > I can have written as the package, version, and operator, so I don't have > to try to parse or do any special checks to construct the line. So I want > to be able to read each line, pre-pend '-d' then wrap it in quotes, then > append a slash to prevent it from executing. There is a parameter after all > the dependencies so, so I don't have to leave the last slash off. The whole > command would look like this: > > fpm -s dir -t rpm -n {package} -v {version} -C /path/to/{package}/output \ > -p {package}-VERSION.fc21.ARCH.rpm \ > -d "{dependency-package} >= {version}" \ > -d "{dependency-package} >= {version}" \ > usr > > Sorry if it's long winded or a little difficult to understand, I wasn't > sure how to phrase everything and hope it came out clear. > > I am not quite sure I understand what your input is, but the below snippet will let you read lines into $REPLY and will append to a string $result. It probably doesn't entirely do what you need but should be close enough. If not, pls share your input and we'll have you taken care off. -snip- result="" while read; do result="${result}\n-d \"${reply}\"" done < $INFILE echo $result -snap- hth O. /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
