multi-file multi-edit


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers multi-file multi-edit
# 1  
Old 06-26-2001
Question multi-file multi-edit

Good day!

I am trying to learn how to use the "sed" editor, to perform multiple edits on multiple files in multiple directories.

I have one script that tries to call up each file and process it according to the edits listed in a second script. I am using a small input text to test these, at this point. I show both scripts and the input text below.

(a) I am not sure that I am using the "find" command effectively, to find all the files that will be nested in various directories. They will all be *.tex files.

(b) I am certainly not using sed correctly -- help?

If anyone can help me forward on either of these issues, I'll be very grateful!

Kielitaide
------------------------------------------------------------------------
find.sh
-------------
#!/bin/sh

for file in 'find *.txt'
do
mv $file $file.sed
./edit.sh $file.sed > $file
rm $file.sed
done
------------------------------------------------------------------------
edit.sh
---------
#!/bin/sh

sed -e s/e/I/g $1
sed -e s/a/E/g $1
------------------------------------------------------------------------
abc.txt
---------
apple

banana

cherry
------------------------------------------------------------------------
kielitaide
# 2  
Old 06-26-2001
You forgot to specify a path and operator for find to search, try this in your for loop:

`find /directory/to/search -name *.txt`

Your sed statements seems okay to me, if what you are trying to do is globally substitute e for I and a for E in the files you are finding. Smilie

Hope this helps, if not ask again!

Regards

alwayslearningunix
# 3  
Old 06-26-2001
Bug

Thank you very much Smilie

I have about 400 .tex files nested in a number of sub...directories, within about 20 subdirectories, within one directory.

How should I tell "find" to look into all those subdirectories etc. to find all the *.tex files?

Now my find.sh says:

#!/bin/sh

for file in 'find ./ -name *.txt'
do
mv $file $file.sed
./edit.sh $file.sed > $file
rm $file.sed
done

The name of the draft is now "input.txt", and the errors I receive are:

mv: invalid option -- n
Try 'mv --help' for more information.
-/find.sh: $file ambiguous redirect
rm: invalid option -- n
Try 'rm --help' for more information.

Thanks and best wishes! Smilie
K
kielitaide
# 4  
Old 06-26-2001
Find will search recursively down from the path that you specify, but you may want to change the syntax of your find command in your for loop to:

`find /path/to/search -name "*".txt`

This will search recursively down that path to find all *.txt files, and find should not complain of a missing conjunction Smilie

Hope this helps.

Regards.
alwayslearningunix
# 5  
Old 06-26-2001
Smilie

It is very kind of you to take the time to help me.

Unfortunately, when I added the " double quotes around the asterisk "*", nothing changed -- I got the same error messages.

oooo
ooooo <-- K sends cookies
oooo
kielitaide
# 6  
Old 06-26-2001
#!/bin/sh

for file in `find . -name "*.txt"`
do

perl -pi.bak -e 's/e/I/g; s/akE/g;' $file

#mv $file $file.sed
# sed -e 's/e/I/g;s/a/E/g' $file.sed > $file
done


in Perl method it will first backup the file with '.bak' then edit it in place.


HTH


# 7  
Old 06-26-2001
Tools

Hi there Smilie

Now I have multi-file.sh:

#!/bin/sh
for file in 'find . -name "*.txt"'
do
perl -pi.bak -e 's/e/I/g; s/a/E/g;' $file
done

And I have a text file "input.txt":

apple
banana
cherry

And error messages:

Can't open find: No such file or directory
Can't do inplace edit: . is not a regular file.
Can't open -name: No such file or directory
Can't open "*.txt": No such file or directory

Smilie

Smilie K
kielitaide
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with reformat single-line multi-fasta into multi-line multi-fasta

Input File: >Seq1 ASDADAFASFASFADGSDGFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSD >Seq2 SDASDAQEQWEQeqAdfaasd >Seq3 ASDSALGHIUDFJANCAGPATHLACJHPAUTYNJKG ...... Desired Output File >Seq1 ASDADAFASF ASFADGSDGF SDFSDFSDFS DFSDFSDFSD FSDFSDFSDF SD >Seq2 (4 Replies)
Discussion started by: patrick87
4 Replies

2. Programming

Multi head/multi window hello world

I am trying to write a large X app. I have successfully modified my xorg.conf to setup 4 monitors on an NVIDIA Quatro5200. I am trying to modify a simple hello world application to open a window on three of the four monitors. depending on the changes to loop the window creation section and event... (2 Replies)
Discussion started by: advorak
2 Replies

3. Shell Programming and Scripting

How to substract selective values in multi row, multi column file (using awk or sed?)

Hi, I have a problem where I need to make this input: nameRow1a,text1a,text2a,floatValue1a,FloatValue2a,...,floatValue140a nameRow1b,text1b,text2b,floatValue1b,FloatValue2b,...,floatValue140b look like this output: nameRow1a,text1b,text2a,(floatValue1a - floatValue1b),(floatValue2a -... (4 Replies)
Discussion started by: nricardo
4 Replies

4. Shell Programming and Scripting

Multi-line filtering based on multi-line pattern in a file

I have a file with data records separated by multiple equals signs, as below. ========== RECORD 1 ========== RECORD 2 DATA LINE ========== RECORD 3 ========== RECORD 4 DATA LINE ========== RECORD 5 DATA LINE ========== I need to filter out all data from this file where the... (2 Replies)
Discussion started by: Finja
2 Replies

5. Shell Programming and Scripting

Parse Multi-Section Configuration File

Hello all, Sample configuration file: username = root password = admin IpAddress = 192.168.2.90 HttpCommand = /getfile?hello.jpg Username = root2 Password = admin2 Passive = no Host = 192.168.1.100 Path = /uploads Username = root3 Password = adming Passive = no Host =... (10 Replies)
Discussion started by: LAVco
10 Replies

6. Shell Programming and Scripting

Multi-copying a file

Hello there, I am writting a scrip with in shell (#!/bin/sh) and I need to copy 5 times the same file into different names: cp xsec.1.11 xsec.1.12 cp xsec.1.11 xsec.1.13 cp xsec.1.11 xsec.1.14 cp xsec.1.11 xsec.1.15 cp xsec.1.11 xsec.1.16 and I have to do that for several file.... (6 Replies)
Discussion started by: jolecanard
6 Replies

7. Shell Programming and Scripting

Multi File processing

Hello, I have 2 csv files: File1: Name,year,organization Jim,2007,Org1 Bob,1999,Org3 Chris,2001,Org2 File2: DocumentName,DocumentTitle,organization,year Test1,Test1,Org1,2007 Test2,Test2,Org2,2008 Test3,Test3,Org3,2009 Using the ksh, I'm reading by line and grabbing the... (2 Replies)
Discussion started by: orahi001
2 Replies

8. Shell Programming and Scripting

multi file editing in vi

Hi all Some yeras ago (1994) I had a utility that bundled up multiple files into a big file with a seperator lines. Automatically loaded this temp file into vi - which allowed you to edit all the files. then when you :wq or ZZ vi it saved all the files bak to their appropriate file names and got... (0 Replies)
Discussion started by: ricl999
0 Replies

9. UNIX for Dummies Questions & Answers

Multi User Multi Task

Dear Experts Why we always hear that unix operating system is Multi User and Multi task. What does these two means. I have looked at some books and documents but couldn't find aclear explenation. Can we say Windows operating system is also multi user and multi task?? Thanks for your help in... (6 Replies)
Discussion started by: Reza Nazarian
6 Replies

10. Windows & DOS: Issues & Discussions

Multi booting file systems

Hi all, I'm trying to get Mandrake 9.0, XP & 2K happening on the same machine. I've been reading about osl 2000 (bootmanager) and it says I should convert my Windows (currently ntfs) to fat 32 "if possible". Why? Also, when I connect the linux drive my machine boots straight to Mandrake - no... (2 Replies)
Discussion started by: onestepto
2 Replies
Login or Register to Ask a Question