Visit Our UNIX and Linux User Community


renaming multiple files with first line of content


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting renaming multiple files with first line of content
# 1  
Old 10-19-2009
renaming multiple files with first line of content

Hi ,
I want to rename multiple files with their first line bar the first character + the extension .qual. For the example below the filename should read
7180000000987.qual. I have trawled through different threads for 2 days and I don't seem to find anything I can adopt for this task Smilie

>7180000000987
60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60

Your help would be very much appreciated

Bruno
# 2  
Old 10-19-2009
Something like this:
Code:
find . -type f -name *.input -print | while read FILE
do
    echo mv "$FILE" "$( dirname "$FILE" )"/"$( head -1 "$FILE" | cut -c2- )".qual
done

Change the search instructions for find as needed, and when satisfied with the result, remove the echo from inside the loop.
# 3  
Old 10-19-2009

Code:
for file in *  ## adjust pattern (*) as necessary
do
  read line < "$file"
  mv "$file" "${line#?}.qual"
done

# 4  
Old 10-19-2009
Quote:
Originally Posted by Bruno
I have trawled through different threads for 2 days and I don't seem to find anything...
Bruno
you are supposed to read up to gain knowledge in the first place. Also, renaming files, reading files are so common that its just not possible not to find it here.. Note you can't really find exactly solutions to your problems because all problems are different but i am sure you can find similar ones....
that said, if you are using bash, for one file
Code:
read line < "filename"
newfilename=${line/>/}
mv "filename" "$newfilename"

use a for loop to go over multiple files
# 5  
Old 10-19-2009
It is probably good practice to validate your read from the file prior to doing the move, checking for things like spaces and nulls in the new name. Also check if the new file exists before doing the move. It would be easy to end up with 1 file called: -

60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60.qual
# 6  
Old 10-19-2009
Quote:
Originally Posted by steadyonabix
It is probably good practice to validate your read from the file prior to doing the move, checking for things like spaces and nulls in the new name. Also check if the new file exists before doing the move. It would be easy to end up with 1 file called: -

60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60.qual

That's a valid (but inadvisable) filename, though given the OP's requirement, it would be:

0 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60.qual
# 7  
Old 10-19-2009
Smilie True

Although he didn't say he wanted to overwrite all files with successive moves and end up with 1 file!! LOL

Previous Thread | Next Thread
Test Your Knowledge in Computers #333
Difficulty: Easy
Linux was first developed as an alternative to Windows XP.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Renaming multiple files in sftp server in a get files script

Hi, In sftp script to get files, I have to rename all the files which I am picking. Rename command does not work here. Is there any way to do this? I am using #!/bin/ksh For eg: sftp user@host <<EOF cd /path get *.txt rename *.txt *.txt.done ... (7 Replies)
Discussion started by: jhilmil
7 Replies

2. UNIX for Dummies Questions & Answers

Renaming Multiple files

Hello, I have multiple files that I want to change the names to. Let's say for example that I want to rename all the files in the left column to the names in the right column: What would be the easiest way to go about doing this? Thanks. (1 Reply)
Discussion started by: Scatterbrain26
1 Replies

3. Shell Programming and Scripting

Renaming multiple files

I have 34 file in a directory that all have different names, however, they do have 1 pattern in commmon. They all have "-10-11-2010" date format in the name. I want to replace the date in the file name with a supplied date or maybe even the system date. I am sure I will be using awk or sed to... (9 Replies)
Discussion started by: Harleyrci
9 Replies

4. UNIX for Dummies Questions & Answers

Renaming multiple files

I have multiple gif files in a directory with different names. How can i rename them to have this result: file01.gif file02.gif file03.gif . . . file0500.gif Thanks for your help. (3 Replies)
Discussion started by: netx
3 Replies

5. Shell Programming and Scripting

renaming multiple files

I have to rename 100+ files at a time on the server & was trying to use a script for doing that. I have used ultra edit to create a file having current filename & new file name as below file234.txt | file956.txt file687.txt | file385.txt There is no fixed pattern while renaming & would... (20 Replies)
Discussion started by: crux123
20 Replies

6. Shell Programming and Scripting

Renaming multiple files

Hi, I have several hundred files I need to rename, and I'm would rather not hit F2 for each file individually to rename them. Example of file: large1961.jpg What I need the file to be renamed as: 1961.jpg I don't know what type of command I can execute within a shell script that would... (7 Replies)
Discussion started by: jayell
7 Replies

7. Shell Programming and Scripting

Renaming multiple files

hi, I've a machine running RHEL3,kernel version 2.4. i need to rename multiple files under one directory as follows: ls demo.c demo.S demo-1243.sw demo.xyz and now i need to replace the occurrence of demo with demo_1 for each of the above file. the tedious way is to go ahead and do mv on... (2 Replies)
Discussion started by: amit4g
2 Replies

8. UNIX for Dummies Questions & Answers

Renaming multiple files

Help! I was trying to rename multiple files. Like in DOS, i decided to use wildcards and now i am missing some files. Any ideas on how to recover them? Or find out where the files went? I had these 3 files resume1.log elecresume.log compresume.log The command I ran was mv *.log *.log.bak... (6 Replies)
Discussion started by: rmayur
6 Replies

9. Shell Programming and Scripting

Renaming multiple files

Can someone please tell me how I can rename a bunch of files at a time. I hava a directory that has 700+ files that are named *.xyz and I would like to rename them to *.abc . How can I do that with a simple command ? mv *.xyz *.abc did not work. Thanks in advance (4 Replies)
Discussion started by: jxh461
4 Replies

10. UNIX for Dummies Questions & Answers

renaming multiple files

Hi to everyone!!. Here's my stupid question of the day. When I have to rename a file I use "mv filename newfilename". But what about renaming multiple files, for example if I want to add the prefix "old" to several image files (in fact it's what I wanted to do..). Thanks in advance.... :D (6 Replies)
Discussion started by: piltrafa
6 Replies

Featured Tech Videos