Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
540 views
in Technique[技术] by (71.8m points)

for loop over specific files in a directory using Bash

In a directory you have some various files - .txt, .sh and then plan files without a .foo modifier.

If you ls the directory:

blah.txt
blah.sh
blah
blahs

How do I tell a for-loop to only use files without a .foo modify? So "do stuff" on files blah and blahs in the above example.

The basic syntax is:

#!/bin/bash
FILES=/home/shep/Desktop/test/*

for f in $FILES
do
    XYZ functions
done

As you can see this effectively loops over everything in the directory. How can I exclude the .sh, .txt or any other modifier?

I have been playing with some if statements but I am really curious if I can select for those non modified files.

Also could someone tell me the proper jargon for these plain text files without .txt?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
#!/bin/bash
FILES=/home/shep/Desktop/test/*

for f in $FILES
do
if [[ "$f" != *.* ]]
then
  DO STUFF
fi
done

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...