Errors trying to use all files of a type


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Errors trying to use all files of a type
# 8  
Old 09-16-2015
Thank you very much.

Are the two variables $pref and $prefix different? Thank you Smilie
# 9  
Old 09-17-2015
Quote:
Originally Posted by cmccabe
Thank you very much.

Are the two variables $pref and $prefix different? Thank you Smilie
There was nothing in this thread that set or referenced the shell variable pref until you asked this question. Without knowing how you set pref, there is no way that we can guess whether or not the shell variable expansion $pref will expand to the same string as the shell variable expansion $prefix.
# 10  
Old 09-17-2015
Here is my bash loop that works perfectly.

Code:
  for f in /media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/*.bam ; do
      bname=`basename $f`
      pref=${bname%%.bam}
      samtools view -H $f | sed '/^@PG/d' | samtools reheader - $f > /home/cmccabe/Desktop/NGS/pool_I_090215/${pref}_newheader.bam
 done

I also tried the below with no luck:

Code:
  for f in /media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/*.bam ; do
      bname=`basename $f`
      prefix=${f%%.bam}
      samtools view -H $f | sed '/^@PG/d' | samtools reheader - $f > /home/cmccabe/Desktop/NGS/pool_I_090215/${prefix}_newheader.bam
 done
  bash: /home/cmccabe/Desktop/NGS/pool_I_090215/media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/IonXpress_008_150902_newheader.bam: No such file or directory
bash: /home/cmccabe/Desktop/NGS/pool_I_090215/media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/IonXpress_015_rawlib_newheader.bam: No such file or directory
bash: /home/cmccabe/Desktop/NGS/pool_I_090215/media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/IonXpress_016_150902_newheader.bam: No such file or directory

I am just curious why the second command was looking for the output in the directory. Thank you Smilie.

Last edited by cmccabe; 09-17-2015 at 11:09 AM.. Reason: edit format
# 11  
Old 09-17-2015
Quote:
Originally Posted by cmccabe
Here is my bash loop that works perfectly.

Code:
  for f in /media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/*.bam ; do
      bname=`basename $f`
      pref=${bname%%.bam}
      samtools view -H $f | sed '/^@PG/d' | samtools reheader - $f > /home/cmccabe/Desktop/NGS/pool_I_090215/${pref}_newheader.bam
 done

I also tried the below with no luck: [...]
bname=${f##*/} will always be faster than bname=`basename $f`

You are not working with the same variable. In pref you use bname as the base; in prefix, you are using the f variable and not bname.

Perhaps this demo will clarify:

Code:
[cmccabe]$ f="/media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/IonXpress_008_150902.bam"
[cmccabe]$ echo $f
/media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/IonXpress_008_150902.bam
[cmccabe]$ bname=`basename $f`
[cmccabe]$ echo $bname
IonXpress_008_150902.bam
[fcmccabe]$ pref=${bname%%.bam}
[cmccabe]$ echo $pref
IonXpress_008_150902
[cmccabe]$ 
[cmccabe]$ prefix=${f%%.bam}
[cmccabe]$ echo $prefix
/media/cmccabe/C2F8EFBFF8EFAFB9/pool_I_090215/IonXpress_008_150902
[cmccabe]$

I highlighted the difference
This User Gave Thanks to Aia For This Post:
# 12  
Old 09-17-2015
Thank you for clarifying and for the great demo Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Latest list of files of each type

find /tmp/testlog/kSR*"_"2018* -type f -printf '%T@ %p\n' | sort -n | tail -3 | cut -f2- -d" " /tmp/testlog/log/KSR04_2018-07-05.log /tmp/testlog/log/KSR04_2018-07-06.log /tmp/testlog/log/KSR01_2018-07-06.log But, I would see the following output(latest files for each KSR tuype) ... (3 Replies)
Discussion started by: jhonnyrip
3 Replies

2. UNIX for Dummies Questions & Answers

Search in one type of files and replace

I am not sure how to search and replace the word in the few specific files. I need to search and replace word in only the name containing pepsi in the filename. (12 Replies)
Discussion started by: ramkumar15
12 Replies

3. Shell Programming and Scripting

Delete files of the same type if there are more than 3

hi, I would like to delete files in a folder starting with letters ab and fe and so on. It should only delete if there are more than 3 files of that type in that folder. Please suggest me how to write a script. i am new to this scripting. (4 Replies)
Discussion started by: Sneddy
4 Replies

4. Shell Programming and Scripting

Reading files of different type and same basename

Hi ! all I have need of accessing multiple files of different type same base name, and I want to compare base name if matching then I want to send those 2 files of different type to some program, for further processing my files are like this file_1.txt file_2.txt file_3.txt file_4.txt... (6 Replies)
Discussion started by: Akshay Hegde
6 Replies

5. UNIX for Advanced & Expert Users

find -type d returning files as well as directories

Can anyone see why the following command returns all files and not just the directories as specified? find . -type d -exec ls -F {} \; Also tried find . -type d -name "*" -exec ls -F {} \; find . -type d -name "*" -exec ls -F '{}' \; -print Always returns all files :-\ OS is... (2 Replies)
Discussion started by: tuns99
2 Replies

6. UNIX for Advanced & Expert Users

Deleting older files of a particular type

hi This should be easy but i'm obviously missing something obvious. :) I'm looking to delete files from yesterday and older of extension .txt and there a range of subfolders with these files in them. The command runs but doesn't delete anything. SUSE 10. find /testfolder -maxdepth 2 -type f... (6 Replies)
Discussion started by: cmap
6 Replies

7. UNIX for Advanced & Expert Users

Type v for generated files

Hi All, I was checking some of the files and I got the following entries:- =============== v, 664, serv, serv, version.txt, exe L, 775, serv, serv, start.sh, eventserv ================ Could someone please tell me what does the type"v" and "L" represent to. I have not... (2 Replies)
Discussion started by: shubhranshu
2 Replies

8. UNIX for Dummies Questions & Answers

deleting files by type (symbolic links)

How do I delete just the symbolic links in a directory? I have files that I wish to keep that have similar names, length and date/time. Can I use file size? Thanks kyle (4 Replies)
Discussion started by: kryan_toolboy
4 Replies
Login or Register to Ask a Question