Find command + replace the extension (.xxx) by *

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Find command + replace the extension (.xxx) by *
# 1  
Old 04-20-2017
Find command + replace the extension (.xxx) by *

Hello,

I'm on HP Unix and in a Job, I tried to extract all files from a folder, and replace the extension (.xxxx) by '*' , remove duplicates and move the result in a file..

Example :
Folder has : ABC, CCC.txt, CCC.sf, CCC.sfd, DDD

I need to generate and output file with :
Code:
    ABC*
    CCC*
    DDD*

the commands that I did (See below) is working, but it increased the size of the logs because in my folder it has more than 600 000 files.. Is I can used another command to doing it or do an echo off somewhere and echo on after the execution.. thanks

Code:
[ -f $MAITUT/temp_file_A ] && rm $MAITUT/temp_file_A
[ -f $MAITUT/BCK_TMP_FILES_TO_DELETE ] && rm $MAITUT/BCK_DATA_FILES_TO_DELETE


find * -type f -mtime -365 | while read FileName
do
echo ${FileName%.*}'*' >> $MAITUT/temp_file_A
done

# Remove duplicates

sort -u $MAITUT/temp_file_A > $MAITUT/BCK_DATA_FILES_TO_DELETE

Example of the Info that i have in the logs :

Code:
...

+ read FileName
+ echo ARCAEDF*
+ 1>> /umaitdevapp/home/maitdev/tmp/temp_file_A
+ read FileName
+ echo ARCAMF*
+ 1>> /umaitdevapp/home/maitdev/tmp/temp_file_A
+ read FileName
+ echo ARCAMF*
+ 1>> /umaitdevapp/home/maitdev/tmp/temp_file_A
+ read FileName
+ echo ARCCC*
+ 1>> /umaitdevapp/home/maitdev/tmp/temp_file_A
+ read FileName
+ echo ARCCC*
+ 1>> /umaitdevapp/home/maitdev/tmp/temp_file_A
+ read FileName
+ echo ARCCD*
+ 1>> /umaitdevapp/home/maitdev/tmp/temp_file_A
+ read FileName
+ echo ARCCD*
+ 1>> /umaitdevapp/home/maitdev/tmp/temp_file_A
+ read FileName

...

Thanks a lot
Alain

Last edited by Corona688; 04-20-2017 at 06:01 PM..
# 2  
Old 04-20-2017
To keep the forums high quality for all users, please take the time to format your posts correctly.

First of all, use Code Tags when you post any code or data samples so others can easily read your code. You can easily do this by highlighting your code and then clicking on the # in the editing menu. (You can also type code tags [code] and [/code] by hand.)



Second, avoid adding color or different fonts and font size to your posts. Selective use of color to highlight a single word or phrase can be useful at times, but using color, in general, makes the forums harder to read, especially bright colors like red.

Third, be careful when you cut-and-paste, edit any odd characters and make sure all links are working property.

Thank You.

The UNIX and Linux Forums
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 04-20-2017
Someone left a set -x in your script by accident, causing it print every line of execution to stderr. Remove the set -x and it will stop doing that.
# 4  
Old 04-21-2017
... or the script is run with "sh -x"; the -x option also turns on the debug mode.

The following will run faster, and log less in debug mode
Code:
find * -type f -mtime -365 |
# replace a trailing .xxx with *
  sed 's/[.][^.]*$//' |
# Remove duplicates
  sort -u > $MAITUT/BCK_DATA_FILES_TO_DELETE

The pipe passes the output to the next command without a temp file.
This User Gave Thanks to MadeInGermany For This Post:
# 5  
Old 04-21-2017
The request seems to be to add a .* to every single file name, have it an extension or not. Try this small adaption to MadeInGermany's proposal:
Code:
find * -type f -mtime -365 | sed 's/[.][^.]*$//; s/$/.*/' | sort -u

This User Gave Thanks to RudiC For This Post:
# 6  
Old 04-21-2017
Many thank to all of you, I used both and run very well & fast..

Code:
set +x
 find * -type f -mtime -365 | sed 's/[.][^.]*$//; s/$/*/' | sort -u > $MAITUT/FILES_TO_DELETE


Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 04-22-2017 at 04:03 AM.. Reason: Changed ICODE to CODE tags.
# 7  
Old 04-21-2017
My previous post missed the replacement * in sed 's/[.][^.]*$/*/'.
But still this is different from the original while loop: it does not add the * when there is no .xxxx extension.

BTW your last post has ICODE tags instead of Code tags. The latter work much better for multi-line code blocks.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Red Hat

Gnome3 locksup on new Linux kernel 12.6.xxx & 12.5.xxx

Hi Forum Ive been having a problem with the kernal(s) for some strange reason it every time I try and access the date and time/calendar or system settings it locks up the whole laptop and nothing responds. :(. This doesn't happen 11.10.xxx kernel . Any help would be much appreciated and thank you... (1 Reply)
Discussion started by: ShinTec
1 Replies

2. Shell Programming and Scripting

Find and replace using sed command

The content of the file filea.txt is as follows. --------- case $HOSTNAME in aaa) DS_PARM_VALUE_SET=vsDev APT_Configuration_File=/appl/infoserver/Server/Configurations/2node.apt ;; bbb) DS_PARM_VALUE_SET=vsQA... (3 Replies)
Discussion started by: kmanivan82
3 Replies

3. Shell Programming and Scripting

sed find and replace command not working

Hi, Am trying to replace a character '-' with 'O' in position 289 in my file but am not success with below command. sed 's/^\(.\{289\}\)-/\1O/' filename sed: 0602-404 Function s/^\(.\{289\}\)-/\1O/ cannot be parsed. Thanks in Advance Sara Video tutorial on how to use code tags in The... (9 Replies)
Discussion started by: Sara183
9 Replies

4. Shell Programming and Scripting

sed command to find and replace

Hello All, I need a sed command to find and replace below text in multiple files in a directory. Original Text :- "$SCRIPT_PATH/files" Replace with :- "$RESOURCE_FILE" Thank you in advance !!! Regards, Anand Shah (1 Reply)
Discussion started by: anand.shah
1 Replies

5. AIX

echo $varibla | mail -s "subject" "xxx@xxx.com" not ruuning as expected

Hi Folks, As per the subject, the following command is not working as expected. echo $variable | mail -s "subject" "xxx@xxx.com" Could anyone figure it out whats wrong with this. I am using AIX box. Regards, (2 Replies)
Discussion started by: gjarms
2 Replies

6. UNIX for Dummies Questions & Answers

Find & Replace command - Fasta file

Hi all ! I have a fasta file that looks like that: >Sequence1 RTYIPLCASQHKLCPITFLAVK (it's just an example, obviously in reality I have several pairs of lines like that) Using UNIX command(s), would it be possible to replace all the characters except the "C" of the second line only by... (7 Replies)
Discussion started by: Cevin21
7 Replies

7. UNIX for Dummies Questions & Answers

Find command to exclude files with no extension

The below 'ls' command will list down files with extensions and suppress the ones with no extension ls |grep "\\." But this dosen't work when I apply the same logic using 'find' command find . -type f |grep "\\." I need help on how this logic can be implemented using 'find' command (3 Replies)
Discussion started by: meenavin
3 Replies

8. Shell Programming and Scripting

What is find and replace command in unix?

hello forum memvers, 1:I have to write a script for find a string and replace with another string. 2:In shell script how to replace one string with another string.:b: (4 Replies)
Discussion started by: rajkumar_g
4 Replies

9. Shell Programming and Scripting

find and replace command

Hi, i used to do on soalris box but in linux box i am not able to do advice is appreciated uname -a Linux intranet 2.4.20-pre3 #1 Tue May 6 17:55:35 IST 2008 i686 unknown $ find /usr/local/ -type f | xargs perl -pi -e 's/172.16.1.14/172.16.1.27/g' Can't remove /usr/local/bin/dbhome:... (1 Reply)
Discussion started by: prakash.gr
1 Replies

10. UNIX for Dummies Questions & Answers

find and replace command in one line using one command

Hi, I have a entry in the file as ::BSNL GUJARAT::India::OUT::NAT::REWEL::POSTPAID::919426199995 if u see this, i have the delimiter as :: , all i want is to replace "::" as ":" so how to do that.. pls help thanks (10 Replies)
Discussion started by: vasikaran
10 Replies
Login or Register to Ask a Question