foreach loop question


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers foreach loop question
# 1  
Old 12-21-2005
foreach loop question

Hello, I am new at this forum so please bare with me on this.

Within a given directory, I have a list of files in which in each file, I would like to do a substitution. I would like to substitute the string mlcl to mll in each file using the foreach command. I dont quite get how to do that. If you can provide help, it would surely be appreciated
# 2  
Old 12-21-2005
Are you talking about perl?
# 3  
Old 12-21-2005
I am in the Unix environment at a directory and thought to do something like

set x = `ls`
foreach i ($x)
`sed s/mlcl/mll/g`
end

but this doesnt seem to work
# 4  
Old 12-21-2005
Do you want to move the files too (this is sh/ksh/bash)?

Code:
$ touch mlcl_1 mlcl_2 mlcl_3
$ ls mlcl_*
mlcl_1  mlcl_2  mlcl_3
$ ls | while read file; do
>   mv $file `echo "${file}" | sed 's/mlcl/mll/'`
> done
$ ls
mll_1  mll_2  mll_3
$

Cheers
ZB
# 5  
Old 12-21-2005
I want to keep the change in the same file name, so I think
that I just dont need to do the file name touches and the mv
command. Is that corret Zazzy?
# 6  
Old 12-21-2005
My above post was an interactive session, hence the "touch"es.

If you don't want to keep the changes, you can easily do (as long as there aren't a load of files....)
Code:
ls *mlcl* | sed 's/mlcl/mll/g'

Else; just do
Code:
ls | while read file; do
  echo "${file}" | sed 's/mlcl/mll/'
done

If you want to keep the filename change, just add in the mv.

Cheers
ZB
# 7  
Old 12-22-2005
why you have put sed command in ` quotes ?? i guess it is not required

foreach i ( * )
sed s/mlcl/mll/g
end
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Foreach loop with two variables

I need to put together a script that will take the contents of two different files (database name and database owner) and put them in two variables within a line: foreach x (`cat /local/hd3/dba/tools/build_db_scripts/dbs`) foreach z (`cat /local/hd3/dba/tools/build_db_scripts/dbas`)... (6 Replies)
Discussion started by: deneuve01
6 Replies

2. UNIX for Dummies Questions & Answers

foreach loop in csh

Hi everyone I'm new to unix and encountered a small problem i couldnt find out a reason why it doesn't work..please help.. in my csh script when i tried to use the foreach loop like this: foreach x ( ls ) echo $x end when i tried to run it, it printed out 'ls' to the std out instead of... (3 Replies)
Discussion started by: ymc1g11
3 Replies

3. Shell Programming and Scripting

foreach loop problem

Dear all, I wrote a script to download files and move files in directories according to their name. Now here is the problem: Both p101 and p360 data download successfully, but when I move them according to the year and month, only p101 data can be placed at the right location, p360,... (1 Reply)
Discussion started by: handsonzhao
1 Replies

4. UNIX for Dummies Questions & Answers

Using the Foreach loop, Needing help

I am trying to make a script for my Counter-Strike: Source servers. What i am wanting it to do is for it to restart each server, the only way i can think of doing this in through for each. Years what i have at the moment. server_start() { START=`ps x | grep SCREEN | grep $SRV | cut -d '?' -f... (5 Replies)
Discussion started by: grahamn95
5 Replies

5. Shell Programming and Scripting

Using sed with a foreach loop

So I am back again beating my head against the wall with a shell script and getting a headache! I want to change each year in a file (1980, 1981, 1982, 1983, etc.) to the same year followed by a tab. The input is "blah blah (1980) blah blah". I want to get "blah blah (1980 ) blah blah".... (2 Replies)
Discussion started by: Peggy White
2 Replies

6. UNIX for Advanced & Expert Users

Problem with foreach loop

Hi All, Is there any problem with the below 'foreach' loop? foreach risk_factor ($(cat "$rf_list")) where "rf_list=$SCRIPT/Utility/rflist.txt " I'm wondering, it is throwing below error message: syntax error at line 34: `(' unexpected Any idea/suggestions ? Thanks in advance /... (7 Replies)
Discussion started by: ganapati
7 Replies

7. Shell Programming and Scripting

foreach loop

Hi everyone Does anyone know what is wrong with this script. i keep getting errors foreach filename (`cat testing1`) set string=$filename set depth=`echo "$string" echo $depth end the error is the following testing: line 1: syntax error near unexpected token `(' testing: line 1:... (3 Replies)
Discussion started by: ROOZ
3 Replies

8. Shell Programming and Scripting

foreach loop + 2 variables

In a foreach loop, is it possible for the loop to go through 2 arguments instead of one i.e. instead of foreach i (do stuff for i), we have foreach i j(do stuff for i; do stuff for j) I am working under BASH and TCSH shell environments cheers (3 Replies)
Discussion started by: JamesGoh
3 Replies

9. Shell Programming and Scripting

foreach loop

Hi Guys, I have a loop which uses a wildcard i.e. foreach f (*) but when I execute the tcsh file in unix then it gives me an error ->>>>>>>foreach: words not parenthesized<<<<<<<<<<- Any help. (1 Reply)
Discussion started by: abch624
1 Replies

10. Shell Programming and Scripting

Foreach loop

What am I doing wrong with this foreach loop? foreach var ($argv) @sum = $sum + $var (4 Replies)
Discussion started by: haze21
4 Replies
Login or Register to Ask a Question