Visit Our UNIX and Linux User Community


Replace file name with Space as content


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace file name with Space as content
# 1  
Old 09-29-2014
Replace file name with Space as content

Hi,

I am having a files in my directory like this:
Code:
2014 1049_file1.txt
2014 1050_file2.txt
2014 1110_file3.txt
2014 1145_file4.txt
2014 2049_file5.txt

I need to replace the above file names like this without changing the content of filename:
Code:
file1.txt
file2.txt
file3.txt
file4.txt
file5.txt

I tried something like this but didn't workout:
Code:
for i in *.txt
do
mv $i ${*_i}
done

# 2  
Old 09-29-2014
try:
Code:
mv "$i" "${*_i}"

# 3  
Old 09-29-2014
Hi

its not working its throwing an error
-bash: ${*_i}: bad substitution
# 4  
Old 09-29-2014
Try this:

HTML Code:
#!/bin/bash
for i in "*.txt"
do 
mv $i ${i#*_} 
done
# 5  
Old 09-29-2014
Hi

it didn't replace the file with your code
# 6  
Old 09-29-2014
Try:
Code:
for f in *txt;do
     tui-echo "$f" "${f/*_/}"
done

# | 2014 2014_file1.txt                                                                                  file1.txt | #
# | 2014 2014_file2.txt                                                                                  file2.txt | #
# | 2014 2014_file3.txt                                                                                  file3.txt | #
# | 2014 2014_file4.txt                                                                                  file4.txt | #
# | 2014 2014_file5.txt                                                                                  file5.txt | #
# | 2014 2014_file6.txt                                                                                  file6.txt | #
# | 2014 2014_file7.txt                                                                                  file7.txt | #
+ ~/tmp $

Of course you need to replace tui-echo with mv

Last edited by sea; 09-29-2014 at 12:48 PM..
# 7  
Old 09-29-2014
This will work:
Code:
for i in *.txt
do 
mv "$i" "${i#*_}"
done

---------- Post updated at 05:25 PM ---------- Previous update was at 05:20 PM ----------

Quote:
Originally Posted by shekhar_4_u
Code:
for i in "*.txt"

The problem here is that all txt files will expand, but within the double quotes, thus i becomes one long string containing a list of all text files instead of handling/representing each file separately.

Hope this helps.

Previous Thread | Next Thread
Test Your Knowledge in Computers #348
Difficulty: Easy
Awk's built-in variables include the field variables: $1, $2, $3, and so on ($0 represents the entire record).
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sort a file content with space

Hello, I need help on. I have a File which stores the information as below. It is space separated file, I want to keep only unique record in file based on file name. Also if you notice sometime filename with space appear in last column like (abc_ xyz1_bc12_20140312_c.xlsx) 03/17/2014 ... (9 Replies)
Discussion started by: kumar30213
9 Replies

2. Shell Programming and Scripting

How to replace multiple file content?

Hi Gurus, I need replace multiple files content. the file name pattern likes currentfile_code_* the content pattern in the file like text=value I need replace the content as text=abcde Thanks in advance (7 Replies)
Discussion started by: ken6503
7 Replies

3. Shell Programming and Scripting

Sed: replace content from file with the content from file

Hi, I am having trouble while using 'sed' with reading files. Please help. I have 3 files. File A, file B and file C. I want to find content of file B in file A and replace it by content in file C. Thanks a lot!! Here is a sample of my question. e.g. (file A: a.txt; file B: b.txt; file... (3 Replies)
Discussion started by: dirkaulo
3 Replies

4. Shell Programming and Scripting

Replace the content of file with incremented value

I have a file myfile with only one value 1000.I am using it in a shell script.Each time i run the script,the file shud get incremented by 1. I have used the below code for incrementing the value- curr=`cat myfile` echo $curr curr=`expr $curr + 1` But i am not sure how to save this replaced... (2 Replies)
Discussion started by: saga20
2 Replies

5. Shell Programming and Scripting

Need to replace particular content in a xml file

Hi, My requirement is to find a text and replace it with another in a XML file. I am new to Unix,Please provide some suggestion to achieve. Find: <Style ss:ID="ColumnHeader1"> Replace with: <Style ss:ID="ColumnHeader1"> <Borders> <Border ss:Position="Bottom"... (4 Replies)
Discussion started by: cnraja
4 Replies

6. Shell Programming and Scripting

Replace string by file content

hi I have template file my.tpl: bla-bla-bla <link href="style.css" type="text/css"> bla-bla-bla and style.css : body{margin: 0px;} I want to get in result one file: bla-bla-bla <script>body{margin: 0px;}</script> bla-bla-bla I tryed to used SED: sed '/<link .*href=\"(*)*\"... (6 Replies)
Discussion started by: dim_nsk
6 Replies

7. Shell Programming and Scripting

Replace file content after checking value

Our system is receiving one feed from the third party. One of the field in the flat file is ID which id from position 19 to 27. In some cases this ID is coming as 9 zeros (000000000) or 1 right padded zero. ( 0) For these specific records I want to replace fthis field with blank... (3 Replies)
Discussion started by: varunrbs
3 Replies

8. Shell Programming and Scripting

How to replace some content of a file and write with a new name

Hi I have a control file which looks like this LOAD DATA INFILE '/home/scott/XXX.dat' PRESERVE BLANKS ............. ............. how can i change the content of this file and replace the file in the second line with anothe file name and write it back with another name to the disk? ... (5 Replies)
Discussion started by: mwrg
5 Replies

9. Shell Programming and Scripting

SED to replace file content

Hi, I want to replace _F* by _F in a xml file. what is the sed command. I have tried sed "s/_F$/_F/g" or sed "s/_F*/_F/g" , but it does not work. thx file content <TAG>KC_FOU</TAG> <TAG>KC_FABC</TAG> <TAG>KC_FABCDG</TAG> desire output <TAG>KC_F</TAG> <TAG>KC_F</TAG> <TAG>KC_F</TAG> (6 Replies)
Discussion started by: godfreyyip
6 Replies

10. Shell Programming and Scripting

remove space from file content

i am a bit new to shell scripting i have a file containing xxxx xx xx but i want to output the content as xxxxxxxx. thus removing the space. any idea how i can do this (4 Replies)
Discussion started by: blackzinga
4 Replies

Featured Tech Videos