Check if a filename has a string in it

Otorrinolaringologista -man

I'm having problems creating an if statement to check the files in my directory for a certain string in their names.

For example, I have the following files in a certain directory:

file_1_ok.txt
file_2_ok.txt
file_3_ok.txt
file_4_ok.txt
other_file_1_ok.py
other_file_2_ok.py
other_file_3_ok.py
other_file_4_ok.py
another_file_1_not_ok.sh
another_file_2_not_ok.sh
another_file_3_not_ok.sh
another_file_4_not_ok.sh

I want to copy all files that contain 1_ok to another directory:

#!/bin/bash
directory1=/FILES/user/directory1/
directory2=/FILES/user/directory2/


string="1_ok"
cd $directory

for every file in $directory1
do
    if [$string = $file]; then
        cp $file $directory2
    fi
done

UPDATE:

The simpler answer was made by Faibbus, but refer to Inian if you want to remove or simply move files that don't have the specific string you want.

The other answers are valid as well.

Faibbus
cp directory1/*1_ok* directory2/

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related