Results 1 to 10 of 10

Thread: bash script for each line of input

Hybrid View

  1. #1
    Join Date
    Jan 2011
    Beans
    47

    bash script for each line of input

    I've written my script so that it reads in the variables $1 $2 $3 $3....$12

    I have an input file as follows

    word1 1 1 2 3 4 5
    word2 1 1 2 3 4 5 6
    word3 1 1 2 3 4

    I would like to take the values from the input file and run the script once for each line.

    i.e.

    ./script word1 1 1 2 3 4 5
    ./script word2 1 1 2 3 4 5 6
    ./script word3 1 1 2 3 4

    please note that the numbers are not nessicarily in ascending order like this and their order is important.

    sorry for the newb question. but I've looked around a bit and the solutions I found did not work for me.

  2. #2
    Join Date
    May 2011
    Location
    Golden, CO
    Beans
    93
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: bash script for each line of input

    SO let me see if I understand.

    You have an input file.. lets just say input.txt that has a value on each line.
    You want the script to read the file, assign each line to a variable, and then run whatever process on each variable?
    Ubuntu 12.04 for personal use
    Solaris 9, 10 and Red Hat Ent 5 @ work

  3. #3
    Join Date
    Jan 2011
    Beans
    47

    Re: bash script for each line of input

    no I need to input each line into the script. the script gets run one time for each line

    ./script line1

    where line1 (word1 1 2 3 4....) automatically gets broken into

    $1 -> word1
    $2 -> 1
    $3 -> 1
    $4 -> 2
    $5 -> 3
    ...etc

    and the script uses these variable

  4. #4
    Join Date
    Jan 2008
    Location
    Manchester UK
    Beans
    13,639
    Distro
    Ubuntu

    Re: bash script for each line of input

    Scrub that then ^^^

  5. #5
    Join Date
    Jan 2011
    Beans
    47

    Re: bash script for each line of input

    scrub?

  6. #6
    Join Date
    Jan 2008
    Location
    Manchester UK
    Beans
    13,639
    Distro
    Ubuntu

    Re: bash script for each line of input

    I wrote how to take each line as a variable. When I saw your answer I scrubbed mine because it was wrong.

  7. #7
    Join Date
    Jan 2011
    Beans
    47

    Re: bash script for each line of input

    needlessly wasteful but is there a way to just cat each line to a file

    ie

    word1 1 2 3 4 5 -> vars1.txt
    word 2 1 2 3 4 -> vars2.txt
    word3 1 2 3 4 5 6 -> vars3.txt

    then I could for loop across all the files cause the script works if I use cat and there is only one line

    there should probably be a one liner for this, but its escaping me at the moment and I'm not running on much sleep

  8. #8
    Join Date
    Jul 2011
    Location
    South-Africa
    Beans
    678
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: bash script for each line of input

    Not the cleanest approach, but it might work?

    Count the number of "words" in the line, then put each "word" on a new line, in a new temp file if you need to (you should be able to pipe it) then use that new file (or pipe) as a var per line.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •