Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Shell脚本中逐行读取文件的命令方法

在Shell脚本中逐行读取文件的命令方法

原创
作者头像
用户7639835
发布于 2021-12-03 04:45:22
发布于 2021-12-03 04:45:22
10.2K00
代码可运行
举报
文章被收录于专栏:技术知识分享技术知识分享
运行总次数:0
代码可运行

方法一、使用输入重定向

逐行读取文件的最简单方法是在while循环中使用输入重定向。

为了演示,在此创建一个名为“ mycontent.txt”的文本文件,文件内容在下面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cat mycontent.txt 
This is a sample file
We are going through contents
line by line
to understand

创建一个名为“ example1.sh”的脚本,该脚本使用输入重定向和循环:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cat example1.sh 
#!/bin/bash
while read rows
do
  echo "Line contents are : $rows "
done < mycontent.txt

运行结果:

如何工作的:

  • - 开始while循环,并在变量“rows”中保存每一行的内容
  • - 使用echo显示输出内容,$rows变量为文本文件中的每行内容
  • - 使用echo显示输出内容,输出内容包括自定义的字符串和变量,$rows变量为文本文件中的每行内容

Tips:可以将上面的脚本缩减为一行命令,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# while read rows; do echo "Line contents are : $rows"; done < mycontent.txt

方法二、使用cat命令和管道符

第二种方法是使用cat命令和管道符|,然后使用管道符将其输出作为输入传送到while循环。

创建脚本文件“ example2.sh”,其内容为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cat example2.sh 
#!/bin/bash
cat mycontent.txt | while read rows
do
  echo "Line contents are : $rows "
done

运行结果:

如何工作的:

  • - 使用管道将cat命令的输出作为输入发送到while循环。
  • - |管道符将cat输出的内容保存在"$rows"变量中。
  • - 使用echo显示输出内容,输出内容包括自定义的字符串和变量,$rows变量为文本文件中的每行内容

Tips:可以将上面的脚本缩减为一行命令,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cat mycontent.txt |while read rows;do echo "Line contents are : $rows";done

方法三、使用传入的文件名作为参数

第三种方法将通过添加$1参数,执行脚本时,在脚本后面追加文本文件名称。

创建一个名为“ example3.sh”的脚本文件,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cat example3.sh 
#!/bin/bash
while read rows
do
  echo "Line contents are : $rows "
done < $1

运行结果:

如何工作的:

  • - 开始while循环,并在变量“rows”中保存每一行的内容
  • - 使用echo显示输出内容,$rows变量为文本文件中的每行内容
  • - 使用输入重定向<从命令行参数$1读取文件内容

方法四、使用awk命令

通过使用awk命令,只需要一行命令就可以逐行读取文件内容。

创建一个名为“ example4.sh”的脚本文件,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# cat example4.sh 
#!/bin/bash

cat mycontent.txt |awk '{print "Line contents are: "$0}'

运行结果:

总结

本文介绍了如何使用shell脚本逐行读取文件内容,通过单独读取行,可以帮助搜索文件中的字符串。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Shell逐行读取文件的4种方法
在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法。为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率。
用户1685462
2021/08/30
1.6K0
【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前36道,后续持续更新)
本小节以几道真题为例,简单讲解与SHELL有关的面试题。在实际工作中,要写的SHELL脚本要复杂得多。
AiDBA宝典
2019/09/29
9710
【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前36道,后续持续更新)
Linux Shell一些常用记录(一) 顶
''单引号内$变量无效,""双引号内$变量有效,``反撇号为可执行命令,并且可以把命令结果给变量赋值
算法之名
2019/08/20
6270
Shell学习——运维自动化
Shell是一种用于与操作系统内核进行交互的命令行解释器(command-line interpreter)。它是一种命令语言,提供了一种通过键入文本命令来执行操作的方式。Shell还可以解释和执行脚本文件,这些脚本文件包含了一系列按顺序执行的命令。
C3ting
2023/12/26
3310
Shell学习——运维自动化
[Shell编程学习路线]--shell中重定向和管道符(详细介绍)
在Shell编程中,重定向和管道符是两个极其重要的概念,它们让你能够高效地管理输入输出流,并实现强大的命令组合。通过重定向,你可以将命令的输出保存到文件或将文件的内容作为命令的输入,而管道符则允许你将一个命令的输出直接作为另一个命令的输入,从而实现复杂的任务链。在本篇指南中,我们将深入探索重定向和管道符的使用技巧,带你掌握这些强大工具的应用,为你的Shell编程技能注入新的活力。让我们一起开始吧!
神秘泣男子
2024/06/13
2480
[Shell编程学习路线]--shell中重定向和管道符(详细介绍)
Linux Shell脚本面试25问
Q:1 Shell脚本是什么、它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(
小小科
2018/05/04
1.6K0
shell 快速入门
变量 #!/bin/bash # 变量 echo "01_变量.sh" # 变量定义与赋值,等号两边不能用空格分开 name=hahahaha echo $name echo 也使用 {} 输出为 ${name} # 一些特殊变量 test_func() { echo "function name is $FUNCNAME" } test_func echo $HOSTNAME echo $HOSTTYPE echo $MATCHTYPE echo $LANG echo $PWD # echo $
祥祥
2021/01/08
2K0
shell脚本快速入门之-----循环(for、while、until)
若指定用户不在线(未登陆系统),则每10分钟(实验中为了测试效果,可改为3s)试一次,直至用户登录系统后再发送信息 用户名与消息通过为止参数传递给脚本
不吃小白菜
2020/09/03
1.2K0
shell脚本快速入门之-----循环(for、while、until)
shell脚本快速入门系列—————— shell脚本编程规范
开发语言简单举例:shell,Python,Java,JavaScript,HTML,CSS
不吃小白菜
2020/09/03
2.4K0
shell脚本快速入门系列—————— shell脚本编程规范
面试linux运维一定会问到Shell脚本这24个问题
虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问到 shell 脚本的问题,它有助于你在工作环境中自动完成很多任务。
小小科
2018/09/28
1.9K0
Linux Shell脚本编程提高
Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核,不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序.Shel编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果,下面我们会介绍Shell-Script的编写.
王 瑞
2022/12/28
3.4K0
Linux Shell脚本编程提高
Shell脚本(for、while和case语句的应用示例)
一、for循环语句 1、根据姓名列表批量添加用户 步骤:首先创建一个姓名列表 vim /root/users.txt 然后创建脚本vim uaddfor.sh批量添加用户 授权并执行后查看用户是否已
L宝宝聊IT
2018/06/20
2.6K0
shell脚本中常用命令复习
shell脚本可以让降低大家的工作强度,提升大家的管理能力和薪资报酬,还可以让大家有时间学习提升自己,更能让你有时间喝茶撩妹子。所以,学好shell那就是非常必要的啦,那么在学习shell之前我们得热热身,做一下准备工作了。
星哥玩云
2022/09/15
9280
shell脚本快速入门之-----正则三剑客之二sed用法大全!!!
-e 或–expression=:表示用指定命令或者脚本来处理输入的文本文件。 -f 或–file=:表示用指定的脚本文件来处理输入的文本文件。 -h 或–help:显示帮助。 -n、–quiet 或 silent:表示仅显示处理后的结果。 -i:直接编辑文本文件
不吃小白菜
2020/09/03
1.7K0
shell脚本快速入门之-----正则三剑客之二sed用法大全!!!
shell脚本专题(04):循环
最近使用了个自动化平台(详见自动化运维平台Spug测试)进行每周的变更,效果很不错,平台将大量重复繁琐的操作通过脚本分发方式标准化自动化了,平台核心是下发到各个服务器的shell脚本,感觉有必要对shell脚本做个总结,所以有了写本专题的想法。本专题将结合运维实际介绍shell脚本的各项用法,预计10篇左右,将包括系统巡检、监控、ftp上传下载、数据库查询、日志清理、时钟同步、定时任务等,里面会涉及shell常用语法、注意事项、调试排错等。
loong576
2021/03/11
1.7K0
shell脚本专题(04):循环
一文掌握shell脚本的基本语法
欢迎大家star我的GitHub:https://github.com/SolerHo/geeks-shell,建议直接使用GitHub来查看排版,发现markdown有错位的情况。
阳光罗诺
2022/01/03
4.4K0
一文掌握shell脚本的基本语法
如何编写一个shell脚本
本文结合大量实例阐述如何编写一个shell脚本。  为什么要进行shell编程  在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。  下面,让我们一起来看看shell是如何工作的:  建立一个脚本  Linux中有好多中不同的shell,但是通常我们使用bash (bou
阳光岛主
2019/02/20
1.8K0
Linux awk命令
除了使用 sed 命令,Linux 系统中还有一个功能更加强大的文本数据处理工具,就是 awk。
芯动大师
2023/11/10
7390
Linux awk命令
shell学习教程(超详细完整)[通俗易懂]
为了方便以后工作使用和复习,吐血整理记录一下学习shell脚本的笔记,看这篇文章需要对linux系统熟悉,希望对大家有所帮助!
全栈程序员站长
2022/09/23
6.7K0
shell脚本学习之必须了解的基础命令
命令历史 history !! 表示执行上一条命令 !n  表示执行历史中第n条命令 !字符串  表示执行命令历史中首次出现该字符串的命令 设置别名:alias 取消别名:unalias 通配符 在bash下   * :匹配0个或多个字符 ?:只匹配一个字符 输入重定向:< 输出重定向:> 追加重定向:>> 错误重定向: 2> 错误追加重定向:2>> 管道符:| 作业控制 job:查看任务 Ctrl+z:暂停任务 fg:恢复暂停的任务 bg:把暂停的任务丢到后台运行
汤高
2018/01/11
9760
相关推荐
Shell逐行读取文件的4种方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档