Truncate multiple file extensions


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Truncate multiple file extensions
# 8  
Old 08-24-2007
if you have Python, here's an alternative
Code:
#!/usr/bin/python
import os,glob
for files in glob.glob("file*.txt"):
    s= files.split(".")
    newfile='.'.join(s[:2])
    os.rename(files,newfile)

output:
Code:
# ls -1 file*.txt
file 2.txt.txt.txt.txt
file1.txt.txt.txt.txt
# python testing.py
# ls -1 file*.txt
file 2.txt
file1.txt

# 9  
Old 08-24-2007
Code:
[/tmp]$ touch 1.txt 2.txt.txt 3.txt.txt.txt
[/tmp]$ ls *.txt
1.txt  2.txt.txt  3.txt.txt.txt
[/tmp]$ for file in *.txt; do mv ${file} ${file%%.txt*}.txt 2> /dev/null ; done
[/tmp]$ ls *.txt
1.txt  2.txt  3.txt
[/tmp]$

# 10  
Old 08-24-2007
Great Vino..... it worked like a charm...Txs for your wonderful solution...

Txs ghostdog74, but i dont have python....
# 11  
Old 04-03-2008
${file%%.txt}

dear Vino,

I am really curious to know the expression ${file%%.txt} .

Please can you explain it to me.
I was looking for a solution to extract the extrension of a file name. I wanted to split a file by line numbers but the unix split command splits the file with suffix is aa, ab, ac etc which I want to convert into 00, 01 etc and I was struggling to get the extension part.

Thanks a lot in anticipation.
# 12  
Old 04-03-2008
Quote:
Originally Posted by kodermanna
dear Vino,

I am really curious to know the expression ${file%%.txt} .

Please can you explain it to me.
I was looking for a solution to extract the extrension of a file name. I wanted to split a file by line numbers but the unix split command splits the file with suffix is aa, ab, ac etc which I want to convert into 00, 01 etc and I was struggling to get the extension part.

Thanks a lot in anticipation.
Type "man split" and you'll find your answer.
# 13  
Old 04-04-2008
Code:
for i in file*.txt*
do
      newname=$(echo $i | cut -d. -f1-2)
      mv $i $newname
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

List directory name (only once) after multiple file extensions found

Here is a simplified example of my problem. Say I have the following 3 sub-directories; ./folder1 A.txt A.sh ./folder2 B.txt ./folder3 C.txt C.sh I would like to list the directory names which contain both '.txt' & '.sh' type extensions. I have came up with the following code;... (8 Replies)
Discussion started by: mmab
8 Replies

2. Shell Programming and Scripting

Replacing multiple extensions

HI, I have some csv files with mutiple extensions, I want to remove all the extensions and keep only the .csv extension. anybody can suggest me how to do this. source files 1.txt.csv.txt.csv.csv.txt.csv 2.csv.txt.csv.txt.csv.txt target 1.csv 2.csv --Wang (1 Reply)
Discussion started by: wangkc
1 Replies

3. UNIX for Dummies Questions & Answers

recover the truncate file

hi All, how to recover the truncate file in unix. Thanks!:wall: (2 Replies)
Discussion started by: krbala1985
2 Replies

4. Shell Programming and Scripting

Truncate file name to 40 characters

Hello all. I would like to make a script (or two shell scripts) that will do the following. I need the maximum file name and directory name to be 38 characters long. As well, if shortening the file name ends up making all of the files in that directory have the same name, then I would like... (9 Replies)
Discussion started by: marcozd
9 Replies

5. UNIX for Dummies Questions & Answers

changing extensions for multiple files at once

I copied some files to another folder, and I want to change them from .doc extensions to .txt extensions. I tried using the cp and mv commands, but it didn't work. Is it possible to change file extensions with these commands, and if so how do I do it? I tried using the * wildcard (say cp *.doc... (1 Reply)
Discussion started by: Straitsfan
1 Replies

6. Shell Programming and Scripting

Creating multiple extensions

Friends I want to automat sending a letter to different persons whose directories are named as 001, 002, 003, 004. To push the same letter to all these directories, I need to name the letter as letter.001, letter.002 like that. Is there any method whereby I get the extension of this letter... (2 Replies)
Discussion started by: chssastry
2 Replies

7. Shell Programming and Scripting

Stripping out extensions when file has multiple dots in name

I posted this already in another thread, but was told that I should create a seperate thread for the following question: How do I strip the extension when the delimiter might occur multiple times in the filename? For example: I have 2 files as input for my script. test.extension... (8 Replies)
Discussion started by: Nemelis
8 Replies

8. UNIX for Dummies Questions & Answers

Truncate last <n> characters from a file

I am trying to concatenate 2 files, but before concatenation, I would like to strip off the final character from the first file. The final character is a form feed (ascii 012 / hex 0C) and there will be an unknown number of these characters in the file. It is only the very last one which I want... (1 Reply)
Discussion started by: Gwailo88
1 Replies

9. Shell Programming and Scripting

Truncate File contain

I have one file which first line is blank and second line has some data. $cat filename output: 30-MAY-07 I want to store 30-MAY-07 value in one variable. for that I wrote var="`head -2 filename`" It will give that result but I want to truncate the first line which is blank. plz help. (2 Replies)
Discussion started by: rinku
2 Replies

10. Shell Programming and Scripting

find -regex: matching multiple extensions

I want to use find to locate files with two different extensions, and run a grep on the results. The closest I have gotten is incredibly slow and ugly: for i in `ls -laR|egrep -e '(.js|.css)'`; do find . -name $i -print|xargs grep -H searchBg; done; This method makes my eyes bleed. Help! ;) ... (2 Replies)
Discussion started by: r0sc0
2 Replies
Login or Register to Ask a Question