Sponsored Content
Top Forums Shell Programming and Scripting New code for modifying text files in a folder Post 302956072 by kylle345 on Friday 25th of September 2015 02:54:28 PM
Old 09-25-2015
Quote:
Originally Posted by Aia
Please, test with a small sample of your given directory.

It creates a file.bk from the file that it finds in the directory, for safety reasons. If the result in the file.bk is correct, remove the
last commented command to rename the backup to the original name and run in the production/real directory

Run as:
Code:
perl kylle345_run.pl /path/to/directory/*.txt

Code:
#!/usr/bin/perl
# kylle345_run.pl

use strict;
use warnings;
use File::Copy qw(move);

# process each file given at the command line
for my $fname (@ARGV){
    my $fh;
    # open the current file    
    if(not open $fh, '<', $fname){
        # file could not be read; skip
        print STDERR "$fname could not be processed\n";
        next;
    }
    print "Processing file: $fname ...\n";

    # obtain substrings from file name if not skip
    my @names = $fname =~ /\[(.+?)\]\[\w\]/g or next;
    open my $fh_bk, '>', "$fname.bk" or next;
    my $before_last = "AMEL\tX\tY\t\tX\tX\n";

    # read the current file
    while(<$fh>){
         # only at second line substitute the xxx.fsa with parts of filename
         s/\w{3}\.fsa(\s+)\w{3}\.fsa/$names[0]$1$names[1]/ if $. == 2;
         # add a line before last
         if(eof) {
             print $fh_bk "$before_last$_";
             next;
         }
         # write to a copy ending in .bk
         print $fh_bk $_;
    }
    close $fh;
    close $fh_bk;
    # test first and if it does correctly, remove the
    # # from next line to rename backup to original name
    #move "$fname.bk", $fname;
}


Thank you for the code but the error "could not be processed comes up"

---------- Post updated at 02:54 PM ---------- Previous update was at 02:54 PM ----------

Quote:
Originally Posted by RudiC
Try also
Code:
awk '
NR==1   {split(FILENAME, T, "[][]")
        }
NR==2   {sub ("...\.fsa", T[2])
         sub ("...\.fsa", T[6])
         EL="AMEL\tX\t" (T[4]=="M"?"Y":"X") "\t\tX\t" (T[8]=="M"?"Y":"X")
        }
NF==1   {print EL
        }

1

' 'UNIQUEID-LABID_[First Name 1][M] - [First Name 2][F].txt'


thanks is there a way to run the entire folder at once?

Thanks
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

grep multiple text files in folder into 1 text file?

How do I use the grep command to take mutiple text files in a folder and make one huge text file out of them. I'm using Mac OS X and can not find a text tool that does it so I figured I'd resort to the BSD Unix CLI for a solution... there are 5,300 files that I want to write to one huge file so... (7 Replies)
Discussion started by: coppertone
7 Replies

2. Shell Programming and Scripting

Help need in modifying the text of .txt file

Hi All, I've written a shell script in which i defined two varibles for example: str=1.0.0.15 timeStamp=2008.03.08 now using this varibles i need to modify a text file. The text content looks like this ************************ * packageNumber : 1.0.0.14 * * date :... (2 Replies)
Discussion started by: vinna
2 Replies

3. Shell Programming and Scripting

Find all text files in folder and then copy to a new folder

Hi all, *I use Uwin and Cygwin emulator. I´m trying to search for all text files in the current folder (C/Files) and its sub folders using find -depth -name "*.txt" The above command worked for me, but now I would like to copy all found text files to a new folder (C/Files/Text) with ... (4 Replies)
Discussion started by: cgkmal
4 Replies

4. UNIX for Dummies Questions & Answers

Separate text files in a folder by word count

Hi, been searching Google for like an hour and I doubt I got the right keywords so might as well ask here. What I need: Before: Article1.txt 564 Article2.txt 799 Article3.txt 349 Article4.txt 452 * Separate files over 400 wordcount * After: Article1.txt 564... (3 Replies)
Discussion started by: Richard2000
3 Replies

5. Shell Programming and Scripting

Loop through text file > Copy Folder > Edit XML files in bulk?

I have a text file which contains lines in this format - it contains 105 lines in total, but I'm just putting 4 here to keep it short: 58571,east_ppl_ppla_por 58788,east_pcy_hd_por 58704,east_pcy_ga_por 58697,east_pcy_pcybs_por It's called id_key.txt I have a sample folder called... (9 Replies)
Discussion started by: biscuitcreek
9 Replies

6. Shell Programming and Scripting

Need to build Shell Script to search content of a text file into a folder consist several files

Have to read one file say sourcefile containing several words and having another folder containing several files. Now read the first word of Sourcefile & search it into the folder consisting sevral files, and create another file with result. We hhave to pick the filename of the file in which... (3 Replies)
Discussion started by: mukesh.baranwal
3 Replies

7. Shell Programming and Scripting

Text Formating or Modifying

Hi Experts, I have a text exactly like below in a file: id item_id item_date prin_mkt_val --------------------------- --------------------------- ------------------------------- ------------------------ ... (1 Reply)
Discussion started by: apatil65
1 Replies

8. Shell Programming and Scripting

Extracting lines from text files in folder based on the numbers in another file

Hello, I have a file ff.txt that looks as follows *ABNA.txt 356 24 36 112 *AC24.txt 457 458 321 2 ABNA.txt and AC24.txt are the files in the folder named foo1. Based on the numbers in the ff.txt file, I want to extract the lines from the corresponding files in the foo1 folder and... (2 Replies)
Discussion started by: mohamad
2 Replies

9. Shell Programming and Scripting

How to add a text at the beginning of a text files in a folder?

how to add a text ( surya) at the beginning of a text files (so many) in folder text file: 111111 555555 666666 result: surya 111111 555555 666666 (3 Replies)
Discussion started by: suryanarayana
3 Replies

10. UNIX for Beginners Questions & Answers

Modifying/combining two text outputs

greetings, I have what seems to be a fairly complex task at hand. I am dealing with 3 outputs from a database. a) Listing of tables. The first 3 characters are always an identifier of an application. See in part b - Example- select tablename from system.tables ABC1 ABC2 RFV1 ... (2 Replies)
Discussion started by: jeffs42885
2 Replies
All times are GMT -4. The time now is 10:49 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy