Bash read file names from a text file and take action

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=$'\n'

# 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.

Leave a Comment