首页 > 系统相关 >shell 循环读取文件中每一行的方法详解

shell 循环读取文件中每一行的方法详解

时间:2023-10-03 10:05:24浏览次数:45  
标签:shell 读取 一行 filename while 详解 line 循环


当需要在shell脚本中读取文件中的每一行进行处理时,可以使用while循环或for循环。下面将详细介绍这两种方法。

 

方法一:使用while循环


使用while循环是一种常见的读取文件中每行的方法。该方法的基本语法如下:

while read line
do
    # 处理每一行的代码
done < filename

其中,read line命令用于读取文件中的每一行,并将其存储在line变量中。< filename表示从文件中读取输入。

以下是一个示例,演示如何使用while循环读取文件中的每一行:

#!/bin/bash

filename="example.txt"

while read line
do
    echo $line
done < $filename

在上面的示例中,我们使用while循环读取example.txt文件中的每一行,并使用echo命令将其输出到终端。

 

 

方法二:使用for循环


使用for循环也是一种读取文件中每一行的方法。该方法的基本语法如下:

for line in $(cat filename)
do
    # 处理每一行的代码
done

其中,$(cat filename)命令用于将文件的内容读取到一个字符串中,并使用空格或换行符分隔每一行。for循环将字符串中的每一行赋值给line变量。

以下是一个示例,演示如何使用for循环读取文件中的每一行:

#!/bin/bash

filename="example.txt"

for line in $(cat $filename)
do
    echo $line
done

在上面的示例中,我们使用for循环读取example.txt文件中的每一行,并使用echo命令将其输出到终端。

 

 

示例说明


以下是两个示例,演示如何使用shell脚本循环读取文件中每一行的方法。

示例1:使用while循环读取文件中每一行

假设有一个名为example.txt的文件,其中包含以下内容:

apple
banana
orange

我们可以使用以下shell脚本使用while循环读取文件中的每一行:

#!/bin/bash

filename="example.txt"

while read line
do
    echo $line
done < $filename

运行上面的脚本,将输出以下内容:

apple
banana
orange

示例2:使用for循环读取文件中每一行

假设我们有一个名为example.txt的文件,其中包含以下内容:

apple
banana
orange

我们可以使用以下shell脚本使用for循环读取文件中的每一行:

#!/bin/bash

filename="example.txt"

for line in $(cat $filename)
do
    echo $line
done

运行上面的脚本,将输出以下内容:

apple
banana
orange

 

总结


使用while循环和for循环都是读取文件中每一行的常见方法。while循环适用于处理大型文件,而for循环适用于处理小型文件。在使用这两种方法时,需要注意文件中每一行的格式,以便正确读取和处理每一行的内容。

标签:shell,读取,一行,filename,while,详解,line,循环
From: https://blog.51cto.com/u_14035463/7689623

相关文章

  • Shell 函数详解(函数定义、函数调用、参数变量)
    Shell函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可。Shell中的函数和C++、Java、Python、C# 等其它编程语言中的函数类似,只是在语法细节有所差别。Shell函数定义的语法格式如下:functionname(){statements[re......
  • C++ 对拍详解 和解读
    对拍是什么#​对拍,是一个比较实用的工具。它能够非常方便地对于两个程序的输出文件进行比较,可以帮助我们实现一些自动化的比较输出结果的问题。​众所周知,几乎每一道编程题目,都会有某种正解能拿到满分;当我们想不出正解时,我们往往可以打暴力代码来获取部分分数。​但是,当我们觉......
  • DESTOON做中英双语言(多语言)切换版本具体详解
    第一次发原创好激动,该注意点什么?在开发过程中用户有许多要求,比如这个多语言切换就是一个需求。首先讲解一下DESTOON(DT)后台系统如何做这个中英、甚至多语言切换的这个功能。DT本身不自带多语言切换功能,但是强大的DT可以切换默认语言和默认模板的。首先登陆后台系......
  • 计算机初级选手的成长历程——扫雷详解
    大家好,很高兴又和大家见面啦!在上一篇内容中,我们详细介绍了三子棋的编写思路,相信大家在阅读完上一篇后对相关的知识点及其运用也有了相应的提升。下面我们就来开始介绍今天的内容——扫雷。扫雷游戏介绍游戏规则扫雷的游戏规则很简单。盘面上有许多方格,方格中随机分布着一些雷。你的......
  • Flutter/Dart第07天:Dart基础语法详解(库、导入和关键字)
    Dart官网文档:https://dart.dev/language/libraries重要说明:本博客基于Dart官网文档,但并不是简单的对官网进行翻译,在覆盖核心功能情况下,我会根据个人研发经验,加入自己的一些扩展问题和场景验证。Dart中的库(Library)Dart语言对代码的复用下了不少功夫,如前面讲到的Mixin高级特性实......
  • linux shell脚本判断当前登录用户是否为root
    脚本实现1(root-1.sh):#!/bin/bashROOT_UID=0if["$UID"-eq"$ROOT_UID"];thenecho"Youareroot."elseecho"Youarejustanordinaryuser(butmonlovesyoujustthesame)."fiexit0脚本实现2(root-2.sh):#!/bin/ba......
  • Aveva Marine VBNET 编程系列====>读取drawing explorer的第2层级 Sub views
    接上期的内容,此次读取view的下一层几subview主要用到下面的方法获取view的第一个子级一个封装的类PublicClassDrawingExpolrerExPublicSharedFunctionDrawingHasViews(draftAppAsMarDrafting)AsBooleanDimvhAsMarElementHandleTry......
  • mysql中find_in_set()函数的使用及in()用法详解
    MySQL手册中find_in_set函数的语法解释:FIND_IN_SET(str,strlist)str要查询的字符串strlist字段名参数以”,”分隔如(1,2,6,8,10,22)查询字段(strlist)中包含(str)的结果,返回结果为null或记录假如字符串str在由N个子链组成的字符串列表strlist中,则返回值的范围在1到N之间......
  • mysql中find_in_set()函数的使用及in()用法详解
    MySQL手册中find_in_set函数的语法解释:FIND_IN_SET(str,strlist)str要查询的字符串strlist字段名参数以”,”分隔如(1,2,6,8,10,22)查询字段(strlist)中包含(str)的结果,返回结果为null或记录假如字符串str在由N个子链组成的字符串列表strlist中,则返回值的范围在1到N之间......
  • 【保姆级安装使用教程#1】Xshell与Xftp的下载、安装和使用
    1.下载官网下载地址:Xshell与Xftp下载地址当然也可以用鄙人的百度网盘连接下载这是链接:链接百度网盘下载Xshell与Xftp分别下载Xshell与Xftp2.安装Xshell打开Xshell安装包点击下一步点击接受许可,并进行下一步点击浏览更换安装地址,选择安装地址时要多建一......