bash shell如何读取文本文件

时间:2019-11-20 08:53:02  来源:igfitidea点击:

问题

shell脚本中如何读取包含文件名列表的文本文件,并根据读取的文件名进行处理?

Bash shell从文本文件读取文件名

读取文本文件的语法如下:

while IFS= read -r line; do
  echo "$line "
done < "filenames.txt"

或者

input="data.txt"
while IFS= read -r line; do
  printf '%s\n' "$line"
done < "$input"

每一行的内容都读取到 line。 然后我们可以对line变量进行处理。

示例

input.txt

file1.txt
file2.txt
file3.html

逐行读取文件:

test.sh

#!/bin/bash
set -e
in="${1:-input.txt}"
 
[ ! -f "$in" ] && { echo "
./test.sh
- File $in not found."; exit 1; }   while IFS= read -r file do echo "file: $file ..." done < "${in}"

运行:

##代码##