逐行读取一个文件行的值赋给变量 [英] Read a file line by line assigning the value to a variable

查看:127
本文介绍了逐行读取一个文件行的值赋给变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下的.txt文件:

I have the following .txt file:

Marco
Paolo
Antonio

我要读它行由行,每行我要分配一个.txt线值的变量。假设我的变量 $名称,该流程是:


  • 阅读第一行从文件

  • 分配 $名称 =马可

  • 请与 $名称
  • 某些任务
  • 从文件中读取第二行

  • 分配 $名称 =保罗

  • Read first line from file
  • Assign $name = "Marco"
  • Do some tasks with $name
  • Read second line from file
  • Assign $name = "Paolo"

推荐答案

以下(另存为 rr.sh )读取由线参数传入行的文件:

The following (save as rr.sh) reads a file passed as an argument line by line:

#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
    echo "Text read from file: $line"
done < "$1"

说明:


  • IFS =''(或 IFS = )prevents领导/被修剪尾随空白。

  • -r prevents反斜线被间preTED逃脱。

  • || [[-n $行] $ P $的,如果它不以 \\ n (结束以来被忽略pvents最后一行返回时遇到EOF)非零退出code。

  • IFS='' (or IFS=) prevents leading/trailing whitespace from being trimmed.
  • -r prevents backslash escapes from being interpreted.
  • || [[ -n $line ]] prevents the last line from being ignored if it doesn't end with a \n (since read returns a non-zero exit code when it encounters EOF).

运行脚本如下:

chmod +x rr.sh
./rr.sh filename.txt

...

这篇关于逐行读取一个文件行的值赋给变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆