Linux如何实现逐行读取文件,Shell脚本逐行读取文件怎么写?

Linux 逐行读取文件详解

在 Linux 环境中,逐行读取文件是脚本编写和数据处理中最常见的需求,根据不同的应用场景(如简单显示、复杂逻辑处理或高性能需求),可以选择不同的实现方式。

使用 Shell 脚本的 while 循环(最常用)

这是在 Bash 脚本中处理文件的标准方法,适用于需要对每一行执行特定逻辑的场景。

【linux从入门到入土】shell脚本创建和基本运行方法,输出第一个hello world
加载中
【linux从入门到入土】shell脚本创建和基本运行方法,输出第一个hello world

标准写法:

while IFS= read -r line; do
    echo "当前行内容: $line"
done < "file.txt"

关键参数解析:

  • IFS=:将内部字段分隔符(Internal Field Separator)设置为空,这样可以防止行首和行尾的空格或制表符被自动删除。
  • read -r:-r 参数防止反斜杠 被当作转义字符处理,确保读取到的是原始文本

    Linux如何实现逐行读取文件,Shell脚本逐行读取文件怎么写?

    。

  • < "file.txt":将文件内容重定向输入到 while 循环中。

使用 awk 处理(高效处理)

awk 是一种强大的文本处理语言,它默认就是逐行读取并处理的,速度比 while 循环快得多。

  • 打印每一行:
    awk '{print $0}' file.txt
  • 根据条件读取并处理:
    # 仅打印包含 "Error" 关键字的行
    awk '/Error/ {print "发现错误: " $0}' file.txt
  • 处理特定列:
    # 打印每行的第一列
    awk '{print $1}' file.txt

使用 sed 处理(流编辑器)

sed 适用于对文件的每一行进行替换、删除或特定行提取。

  • Linux如何实现逐行读取文件,Shell脚本逐行读取文件怎么写?

    逐行打印(等同于 cat):

    sed -n 'p' file.txt
  • 读取并替换每行中的字符串:
    # 将每行中的 "old" 替换为 "new"
    sed 's/old/new/g' file.txt

使用 Python 实现(复杂逻辑)

当读取逻辑过于复杂(如需要调用 API、进行复杂的数学运算)时,建议使用 Python。

推荐写法:

with open('file.txt', 'r', encoding='utf-8') as f:
    for line in f:
        # .strip() 用于去除行尾的换行符 n
        print(line.strip())
  • 优点:内存效率高(迭代器模式),不会一次性将大文件加载到内存中。

方案对比与选择指南

根据你的需求选择最合适的工具:

  • 简单逻辑/系统管理脚本 $rightarrow$ 使用

    Linux如何实现逐行读取文件,Shell脚本逐行读取文件怎么写?

    while read。

  • 大规模文本过滤/字段提取 $rightarrow$ 使用 awk。
  • 快速文本替换/行删除 $rightarrow$ 使用 sed。
  • 复杂业务逻辑/数据分析 $rightarrow$ 使用 Python。

常见陷阱提示

  • 大文件处理:避免使用 for line in $(cat file.txt),因为这会将整个文件加载到内存中,且在遇到空格时会将一行拆分成多个元素,导致结果错误且内存溢出。
  • 权限问题:确保执行读取操作的用户对目标文件具有 r (read) 权限。
  • 换行符问题:如果文件来自 Windows(CRLF),建议先使用 dos2unix file.txt 转换,否则 read 命令可能会在行尾留下不可见的 r 字符。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/linux%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e9%80%90%e8%a1%8c%e8%af%bb%e5%8f%96%e6%96%87%e4%bb%b6%ef%bc%8cshell%e8%84%9a%e6%9c%ac%e9%80%90%e8%a1%8c%e8%af%bb%e5%8f%96%e6%96%87%e4%bb%b6%e6%80%8e%e4%b9%88/

赞 (0)
服务的短信有什么作用,短信验证码收不到怎么办?
上一篇 2026年7月12日 17:52
HKT香港家宽618有折扣吗,深港IEPL专线怎么选?
下一篇 2026年7月12日 17:55

相关推荐

  • 一台服务器功率一般多少瓦,服务器一小时耗电多少度?

    一台服务器的实际功耗通常在300瓦到1000瓦之间,具体数值取决于CPU型号、硬盘数量、扩展卡和运行负载,多数主流机架式服务器在典型业务负载下的稳定功耗约为400瓦至800瓦,为什么服务器功耗不是一个固定数字服务器不是家用台机那种“电源标多少瓦就吃多少瓦”的逻辑,电源额定功率只是上限,实际功耗由硬件配置和实时负……

    2026年9月28日
    000
  • 租一台服务器每月大概多少钱,哪里租服务器便宜又靠谱

    租服务器多少钱一台?直接给结论:一台满足中小网站或业务起步需求的入门级服务器,年付成本通常在4000元到6000元区间;配置更高或需要独立IP、更高防御的机型,年预算普遍在8000元到1.5万元,如果是大型应用或高并发业务,年成本可能达到3万元以上,租服务器的价格不是一个固定数字,它由配置、带宽、线路、服务商资……

    2026年9月23日
    000
  • 1500T储存服务器要多少钱,存储服务器价格怎么算?

    1500t储存服务器的落地价格通常在8万到30万元人民币之间,具体要看你的硬盘选型、冗余策略和部署方式, 如果纯粹做冷数据备份,用企业级机械盘堆容量,预算能压到10万以内;如果承载高并发在线业务,加入SSD缓存或全闪配置,30万只是起点,影响1500t储存服务器价格的核心因素1500t在这里指的是1500TB……

    2026年10月3日
    100
  • 游戏陪玩服务器的价格高不高,怎么收费?

    游戏陪玩服务器的价格跨度很大,从每月几十元的入门级云服务器到数千元的高防独立服务器都有;对绝大多数刚起步或中等规模的陪玩团队来说,每月200元至800元的预算,已经能买到足够支撑日常开黑、语音和排单管理的靠谱配置,如果你只是打算拉三五好友用私人服务器练手,那月付50元左右的轻量应用服务器也够用;但要是你想正儿八……

    2026年10月11日
    100
  • 企业服务器一般要多少钱,预算多少才够用?

    企业服务器一般多少钱? 直接说结论:一台满足日常办公和网站托管需要的入门级服务器,采购预算普遍在八千到一万五之间;若是承载ERP、数据库等关键业务的双路机架式服务器,采购价大致三万到五万;业务规模再往上走,软硬件加三年运维总成本超过十万也是常态,也就是说,价格不取决于单张报价单,而由配置、部署方式、机房环境和长……

    2026年9月25日
    000
  • 星星海sa2云服务器价格是多少,怎么买最便宜

    星星海sa2云服务器的价格根据配置和计费模式差异较大,基础配置月付通常在几百元区间,高配实例可达数千元,通过持有正规资质的服务商采购能获得更透明的定价和稳定的服务,星星海sa2云服务器定价体系详解实例规格与价格范围星星海sa2系列主打通用计算场景,覆盖从轻量级应用到中型业务负载,不同规格的定价主要基于vCPU……

    2026年8月20日
    900
  • 简米云服务器4核8G和4核16G到底差多少,怎么选?

    对于大多数中小型应用,4核8g是性价比之选,而4核16g则更适合内存密集型或高并发场景,两者内存相差一倍,直接决定了性能上限和价格差距,阿里云4核8g和4核16g的核心区别在哪里内存容量差一倍,性能天花板截然不同4核8g与4核16g使用相同代际的CPU,计算能力基本一致,但内存从8GB翻倍到16GB,内存容量直……

    2026年7月22日
    1700
  • 一台服务器配置究竟是多少,服务器配置参数怎么看?

    一台服务器配置并没有统一标准答案,入门业务常用2核4G内存、5M带宽、40G SSD,生产环境多数从4核8G或8核16G起步,具体取决于跑网站、数据库还是小程序,一台服务器的配置由四个核心组件决定CPU:核心数决定并行处理能力CPU不是越多越好,关键看业务是不是重计算,个人博客、企业展示站用2核足够,电商、CR……

    2026年9月20日
    1300
  • 5G服务器到底需要多少钱,一年租用价格怎么算?

    5G服务器没有统一价,月租从几十元到几万元都有,物理机或边缘节点通常在数百到数千元每月,专用5G核心网、GPU边缘服务器则可能数万到数十万,真正决定价格的不是“5G”两个字,而是算力、带宽、机房资质和5G接入方式,5G服务器到底指什么?价格先看类型很多人搜“5G服务器需要多少钱”,其实问的是不同东西,有人想买一……

    2026年9月28日
    000
  • R710服务器待机到底耗多少电?,服务器待机功耗一般多少瓦

    R710服务器在纯待机状态下(仅通电、系统空闲、无业务负载)的实测功耗通常在80瓦至130瓦之间,具体数值取决于配置和电源管理设置,这个结论基于多年机房运维经验以及服务器硬件领域的公认参数(参考Dell PowerEdge R710技术文档中关于电源效率曲线的描述),R710属于上一代双路机架式服务器,搭载In……

    相关资讯 2026年10月24日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注