Basename: extra operand error when on linux command

12 views Asked by At

I tried to create a loop to get all the filenames and fileID. Here are the files:

./SRR14194206_rmdup_bowtie_hg38_sorted_bowtie_tryhard_minus_bottom.bed
./SRR14194206_rmdup_bowtie_hg38_sorted_bowtie_tryhard_plus_top.bed
./SRR14194207_rmdup_bowtie_hg38_sorted_bowtie_tryhard_minus_bottom.bed
./SRR14194207_rmdup_bowtie_hg38_sorted_bowtie_tryhard_plus_top.bed
./SRR14194208_rmdup_bowtie_hg38_sorted_bowtie_tryhard_minus_bottom.bed
./SRR14194208_rmdup_bowtie_hg38_sorted_bowtie_tryhard_plus_top.bed
./SRR14194209_rmdup_bowtie_hg38_sorted_bowtie_tryhard_minus_bottom.bed
./SRR14194209_rmdup_bowtie_hg38_sorted_bowtie_tryhard_plus_top.bed

Here is my code

dataset=$(find -maxdepth 1 -name "*_rmdup_bowtie_hg38_sorted_bowtie_tryhard_*" | sort -V)
echo "$dataset"
./SRR14194206_rmdup_bowtie_hg38_sorted_bowtie_tryhard_minus_bottom.bed
./SRR14194206_rmdup_bowtie_hg38_sorted_bowtie_tryhard_plus_top.bed
./SRR14194207_rmdup_bowtie_hg38_sorted_bowtie_tryhard_minus_bottom.bed
./SRR14194207_rmdup_bowtie_hg38_sorted_bowtie_tryhard_plus_top.bed
./SRR14194208_rmdup_bowtie_hg38_sorted_bowtie_tryhard_minus_bottom.bed
./SRR14194208_rmdup_bowtie_hg38_sorted_bowtie_tryhard_plus_top.bed
./SRR14194209_rmdup_bowtie_hg38_sorted_bowtie_tryhard_minus_bottom.bed
./SRR14194209_rmdup_bowtie_hg38_sorted_bowtie_tryhard_plus_top.bed

dataNameTail="_rmdup_bowtie_hg38_sorted_bowtie_tryhard_"
datasetID=$(basename $(echo "$dataset"| sed "s/$dataNameTail/_/g"))

Here is the error:

basename: extra operand `./SRR14194207_minus_bottom.bed'
Try `basename --help' for more information.

I wondered if the problem is about quoting so I quote all the variable for basename but it couldn't loop all my files in $dataset

datasetID=$(basename "$(echo "$dataset"| sed "s/$dataNameTail/_/g")")
echo "$datasetID"
SRR14194209_plus_top.bed

Any insights on what I'm doing wrong? Thank you in advance!

0

There are 0 answers