读取每一行并使用行作为输入

读取每一行并使用行作为输入

我想要实现的目标是:

1.逐行读取文件。2.将每个内容放入变量中(在 EOF 处停止,这里的问题是我不知道有多少行)3.在另一个文件中单独使用变量。

示例文件:

  1. 123
  2. 345
  3. 567
  4. 等(最多 10 行)

输出文件

  1. 这是123
  2. 这是 345
  3. 这是 567

这可能吗?

> while IFS=$'\n' read -r v1 v2 v3 v4 v5 v6 v7; do
>         # put each new line a var
>         echo "this is $v1" >>log.txt
>         echo "this is $v2" >>log.txt
>         etc.. ;
> 
> done

答案1

mapfile命令在这里很有用:它将文件读入数组,每行都是一个数组元素:

mapfile -t lines < filename
for line in "${lines[@]}"; do
    echo "this is $line"
done

參考文獻:http://www.gnu.org/software/bash/manual/bashref.html#index-mapfile

相关内容