How to loop over files in tcsh at the command line

  • Thread starter ehrenfest
  • Start date
  • Tags Tags
    Loop
1 reply · 49K views · last reply
ehrenfest
Messages
2,001
Reaction score
1
Is it possible to do a for loop at the command line over all files in a given directory using the tcsh shell? I want to loop over all files and apply some commands (e.g. sed) to each one.

EDIT: I called it a "for" loop because I saw a "for" command when I googled this problem but of course I just want to loop over all the files
 
Yes. It's called foreach.

This will invoke the command 'do_something_to' on each .c file in the current directory:
Code:
foreach f (*.c)
   do_something_to $f
end

I often use foreach in conjunction with the backtick operator. This will invoke the command 'do_something_to' on every .c file anywhere in the directory tree headed by the current directory:
Code:
foreach f (`find . -name '*.c'`)
   do_something_to $f
end
The find command can of course do the above directly by using find's -exec option.