Skip to content
TrySitePrice

Bash read file names from a text file and take action

Best/Tutorial

In Bash, you can read the names of files from a text file and take action on them using a while loop and the read command. Here's an example of how you might do this:

#!/bin/bash
# The name of the file containing the list of file names
file_list="files.txt"
# Open the file and read each line
while read -r file_name; do
 # Do something with the file name (e.g. copy it to another directory)
 cp "$file_name" /path/to/destination/
done < "$file_list"

This script reads the names of files from the file "files.txt", one line at a time, and uses the cp command to copy each file to the directory "/path/to/destination/".

You can also use for loop to read the file names.

#!/bin/bash
# The name of the file containing the list of file names
file_list="files.txt"
# Open the file and read each line
for file_name in $(cat $file_list); do
 # Do something with the file name (e.g. copy it to another directory)
 cp "$file_name" /path/to/destination/
done

You can also use IFS variable to read the file containing the list of file names with spaces.

#!/bin/bash
# The name of the file containing the list of file names
file_list="files.txt"

IFS=$'
'
# Open the file and read each line
for file_name in $(cat $file_list); do
 # Do something with the file name (e.g. copy it to another directory)
 cp "$file_name" /path/to/destination/
done

Note: These are just general examples, for more detailed and accurate steps please refer to the official documentation of Bash and Linux/Unix.