Add foldername as prefix to files


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Add foldername as prefix to files
# 1  
Old 03-04-2014
Add foldername as prefix to files

Hi there,
I am looping through folders in order to rename the files in the current folder.
So, given me being a newbie here, I would do that with a for-loop. The renaming per se should be like this:
I want to add the folder-name as a prefix to the files in the folder in question. For instance, looking at the folder 'ABCD' with the files E.fq, F.fq, and G.fq; these files should be renamed:
ABCD.E.fq, ABCD.F.fq, and ABCD.G.fq.

Feedback is greatly appreciated.

jahn
# 2  
Old 03-04-2014
Code:
for i in /home/user/ABCD/*
do
FNAME=$(basename ${i})
FPATH=$(dirname ${i})
DNAME=${basename ${FNAME})
mv ${i} ${FPATH}/${DNAME}.${FNAME}
done

This User Gave Thanks to SriniShoo For This Post:
# 3  
Old 03-04-2014
Try:
Code:
for file in /path/to/your/directory/*
do
  fname=${file##*/} #This gives your base filename.
  fpath=${file%/*} # Your dir
  dname=${fpath##*/}
  mv $file ${fpath}/${dname}.${fname}
done

This User Gave Thanks to chacko193 For This Post:
# 4  
Old 03-04-2014
Try this one also :-
Code:
cur_dir=`pwd`
for loop_dir in `ls -altr | awk '{if($9!="." && $9!=".." && $9!="")print $9}'`
do
cd $cur_dir
if [ -d $loop_dir ] ; then
cd $cur_dir/$loop_dir 
for loop_files in `ls -altr | awk '{if($9!="." && $9!=".." && $9!="")print $9}'`
do
if [ -f $loop_files ] ; then
mv $loop_files $loop_dir.$loop_files
fi
done
fi
done


Last edited by Franklin52; 03-04-2014 at 03:07 AM.. Reason: Please use code tags
This User Gave Thanks to sayami00 For This Post:
# 5  
Old 03-04-2014
Thanks to all of you. Just wanted to show you what I ended up with:


Code:
for i in $(ls); do                        # runs through the 'items' in this dir                               
  if [ -d $i ]; then                      # if this is a dir
     fname=${i##*/}                 # pick up the dir name which will be used as prefix
     echo $fname                           
     cd $i                                    # move into the dir       
     for z in test*.fq; do               # loop over files starting with test and fq extension
       echo $z  
       cp $z ${fname}.${z}         # put the prefix to the file.               
     done                                        
     cd ..                                         
  fi                                              
done


Last edited by Don Cragun; 03-04-2014 at 04:49 AM.. Reason: Add CODE tags.
# 6  
Old 03-04-2014
If you're happy with the solution, fine. You should make sure that neither directories nor file names will contain spaces breaking the for loops, and you should be aware that cpwill not rename the files as requested but produce new files with the prefixed names along with the old ones.
# 7  
Old 03-04-2014
Always happy to learn new stuff. As I indicated, I am pretty much a newbie.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash to add unique prefix to extracted zip folder

In the bash below in each .zip there is a folder to be extracted Variants that I am trying to make unique by adding the prefix, before the _ from the .zip. The script does execute, but the prefix is not added to the extracted folder. Rather the Variants folder is added to each file within it. Thank... (1 Reply)
Discussion started by: cmccabe
1 Replies

2. Shell Programming and Scripting

Need to add prefix using sed or awk from cat the file

I need the use sed or AWK using cat the file Node1 TDEV RW 1035788 TDEV RW 1035788 Server1 TDEV RW 69053 Server2 TDEV RW 69053 TDEV RW 103579 Server3 TDEV RW 69053 server4 RDF1+TDEV RW 69053 RDF1+TDEV RW 517894 RDF1+TDEV RW 621473 server6 TDEV RW 34526 TDEV RW 34526 (22 Replies)
Discussion started by: ranjancom2000
22 Replies

3. Shell Programming and Scripting

Extract Uniq prefix from a start and end prefix

Dear All, assume i have a file with content: <Start>6000</Start> <Stop>7599</Stop> the output is: 6000 7000 7100 7200 7300 7400 7599 how should we use any awk, sed, perl can do this task, means to extract the uniq prefixes from the start and stop prefix. Thanks Jimmy (3 Replies)
Discussion started by: jimmy_y
3 Replies

4. Shell Programming and Scripting

Prefix a variable in the first column of all the records of the files with and without header

In a bash shell, I have to prefix a variable to two .CSV files File1.CSV and File2.CSV. One of the files has a header and the other one is with no header in the below format: "value11","value12","value13","value14","value15","value16" "value21","value22","value23","value24","value25","value26"... (7 Replies)
Discussion started by: dhruuv369
7 Replies

5. UNIX for Dummies Questions & Answers

Listing no. of files in UNIX with common prefix name

Hi, I am entirely new to Unix, need your help to perform certain actions in unix: Can anyone please tell me how to list the number of files in UNIX with Common prefix name. "I want just the number of files and not the names of files". Thanks (12 Replies)
Discussion started by: Hitesh1008
12 Replies

6. UNIX for Dummies Questions & Answers

LINUX - How to add a prefix to a set of files

Hi All, I have a file (lets say filenames.txt) which contains a list of file names. Is there a way I can append a prefix to the filenames as below, Thanks much for your help Freddie (3 Replies)
Discussion started by: dsfreddie
3 Replies

7. Shell Programming and Scripting

How to add date as a prefix for each outputline

What is the best way of printing date-time at the beginning of each output line? DTTIME=$(date +%Y%m%d%H%M%S) myfile.log 0.0 5.2 0.0 41.6 0.1 0.8 15.0 160.2 8 40 d0 0.0 0.8 0.0 6.4 0.0 0.0 13.7 53.2 1 4 d2 3.3 109.4 16.9 721.5 0.9 7.0 ... (5 Replies)
Discussion started by: kchinnam
5 Replies

8. Shell Programming and Scripting

Need awk script to add a prefix to each line in file

Hello , I have file with below content : '165567885', '165568443', '165568805', I need an awk script that would add a prefix zero after first ' . Like '0165567885', '0165568443', '0165568805', Please help. Thanks in advance. (5 Replies)
Discussion started by: rmv
5 Replies

9. Shell Programming and Scripting

Help removing the prefix of more than 10,000 files

I have more than 10,000 files that all start with "raw_ddd_04_*". How can I remove the prefix on these files in a single command? (8 Replies)
Discussion started by: bbbngowc
8 Replies

10. Shell Programming and Scripting

wildcard foldername

Is there a way to wildcard the folder name? v_swap1="Swap Space in GB:" v_swap2=`awk 'NR==2{print $4*512/(1024*1024*1024)}' /opt/SUNWexplo/output/explorer.zeus/disks/swap-l.out` echo $v_swap1 $v_swap2 Actually under /opt/SUNWexplo/output I have 2 explorer with their tar.gz format. For... (1 Reply)
Discussion started by: melanie_pfefer
1 Replies
Login or Register to Ask a Question