Sponsored Content
Full Discussion: Edit $args within a command
Top Forums UNIX for Dummies Questions & Answers Edit $args within a command Post 302924078 by sargotrons on Thursday 6th of November 2014 11:15:54 AM
Old 11-06-2014
Edit $args within a command

Hi,
I'm using a while loop for a given command "bowtie2" with several parameters.

Code:
mkdir clean
paste <(ls --quote-name ./qc/sg_*_R1_val_1.fq.gz) <(ls --quote-name ./qc/sg_*_R2_val_2.fq.gz) |sed 's/"./-1 ./' | sed 's/gz"\t/gz\t -2 /' | sed 's/"//g' |\
      while read args ; do
                           bowtie2  -x ./MrBean_genome_final/dl_mt -p 4 -k 1 -N 1 -L 25 $args --un-conc-gz ./clean/{$args | sed -e 's/.fq.gz.*$//' -e 's/-1 .\/qc\///' -e 's/_R1_val_1//' }.gz -S a.sam

done

so the $args is actually edited to feed two parameters "-1" and "-2"
Code:
 paste <(ls --quote-name ./qc/sg_*_R1_val_1.fq.gz) <(ls --quote-name ./qc/sg_*_R2_val_2.fq.gz) |sed 's/"./-1 ./' | sed 's/gz"\t/gz\t -2 /' | sed 's/"//g'
-1 ./qc/sg_21_L001_R1_val_1.fq.gz        -2 ./qc/sg_21_L001_R2_val_2.fq.gz
-1 ./qc/sg_21_L002_R1_val_1.fq.gz        -2 ./qc/sg_21_L002_R2_val_2.fq.gz
-1 ./qc/sg_22_L001_R1_val_1.fq.gz        -2 ./qc/sg_22_L001_R2_val_2.fq.gz
-1 ./qc/sg_22_L002_R1_val_1.fq.gz        -2 ./qc/sg_22_L002_R2_val_2.fq.gz
-1 ./qc/sg_23_L001_R1_val_1.fq.gz        -2 ./qc/sg_23_L001_R2_val_2.fq.gz
-1 ./qc/sg_23_L002_R1_val_1.fq.gz        -2 ./qc/sg_23_L002_R2_val_2.fq.gz
-1 ./qc/sg_25_L001_R1_val_1.fq.gz        -2 ./qc/sg_25_L001_R2_val_2.fq.gz

For the parameter "--un-conc-gz" I was trying to feed it by editing with sed the $arg,

Code:
--un-conc-gz ./clean/{$args | sed -e 's/.fq.gz.*$//' -e 's/-1 .\/qc\///' -e 's/_R1_val_1//' }.gz

to feed iteratively "--un-conc-gz" with this
Code:
sg_21_L001
sg_21_L002
sg_22_L001
sg_22_L002
sg_23_L001
sg_23_L002
sg_25_L001

Can I do this? Do I need a loop within the loop, if so how?

P.S. the sed editing is OK, no need to focus there.

Many thanks in advance.

---------- Post updated at 04:15 PM ---------- Previous update was at 10:37 AM ----------

Update, I added the echo,
Code:
--un-conc-gz ./clean/{echo "$args" | sed 's/.fq.gz.*$//' |sed 's/-1 .\/qc\///' |sed 's/_R1_val_1//'}.gz

but I get an error message
Quote:
sed: invalid option -- S
.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

required command line args

Hello, How do I make a command line argument required using getopts? Thanks. (6 Replies)
Discussion started by: yoi2hot4ya
6 Replies

2. Programming

Command line args

My program usage takes the form for example; $ theApp 2 "one or more words" i.e. 3 command line arguments; application name, an integer, some text My code includes the following 4 lines: int anInteger; char words; sscanf(argv, "%d", &anInteger); sscanf(argv, "%s", &message); Based... (2 Replies)
Discussion started by: enuenu
2 Replies

3. UNIX for Dummies Questions & Answers

command line args

I am trying to print command line arguments one per second. I have this while do echo "6" shift echo "5" shift echo "4" shift echo "3" shift echo "2" shift echo "1" shift done (2 Replies)
Discussion started by: skooly5
2 Replies

4. UNIX for Dummies Questions & Answers

command line args 2

I have this while loop and at the end I am trying to get it to tell me the last argument I entered. And with it like this all I get is the sentence with no value for $1. Now I tried moving done after the sentence and it printed the value of $1 after every number. I don't want that I just want... (2 Replies)
Discussion started by: skooly5
2 Replies

5. Shell Programming and Scripting

How to retrieve command line args one by on.

Hi, I have to store all the command line arguments into an array. I have the following code. ********************** #! /bin/sh set -A arr_no_updates i=1 while do arr_no_updates=$($i) echo ${arr_no_updates} i=$(($i+1)) done**************** (1 Reply)
Discussion started by: little_wonder
1 Replies

6. Shell Programming and Scripting

How to send a function all command line args?

I have this code, I thought it would automatically know the args sent to script when called from shell. But it seems to not see any... main script: . args . errors . opt . clean dbfile="" opfile="" # calls function in script below chkarg #check commands (2 Replies)
Discussion started by: gcampton
2 Replies

7. UNIX for Dummies Questions & Answers

UFW show args command

In ubuntu man page there is this command. What are values of ARGS I can use? (0 Replies)
Discussion started by: mojoman
0 Replies

8. Shell Programming and Scripting

command line args in unix

Hi, i have a perl script named test.pl. It is executed as cat *.log|test.pl i need the complete command line args. I tried using basename $0 but im getting test.pl only but not cat *.log... Can anyone help me on this. Thanks in advance (3 Replies)
Discussion started by: niteesh_!7
3 Replies

9. Emergency UNIX and Linux Support

Cut | command line args

Hi, Can you please hint me how to achieve the below? Input: $./script.sh start 1 2 Internally inside the script i want to set a single variable with $2 and $3 value? Output: CMD=$1 ARGS=$2 $3 --VInodh (10 Replies)
Discussion started by: vino_hymi
10 Replies

10. Shell Programming and Scripting

Store args passed in array but not the first 2 args

Store args passed in array but not the first 2 args. # bash declare -a arr=("$@") s=$(IFS=, eval 'echo "${arr}"') echo "$s" output: sh array.sh 1 2 3 4 5 6 1,2,3,4,5,6 Desired output: sh array.sh 1 2 3 4 5 6 3,4,5,6 (2 Replies)
Discussion started by: iaav
2 Replies
All times are GMT -4. The time now is 01:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy