专栏首页TheOneGIS空间站Shell脚本循环读取文件中的每一行

Shell脚本循环读取文件中的每一行

  1. 使用for循环
for line in `cat filename`
do
  echo $line
done

或者

for line in $(cat filename)
do
  echo $line
done
  1. 使用while循环
while read -r line
do
  echo $line
done < filename

While循环中read命令从标准输入中读取一行,并将内容保存到变量line中。在这里,-r选项保证读入的内容是原始的内容,意味着反斜杠转义的行为不会发生。输入重定向操作符< file打开并读取文件file,然后将它作为read命令的标准输入。

今天遇到一个问题弄了好久才搞明白:我想在循环中动态链接字符串,代码如下:

for line in `cat filename`
do
  echo ${line}XXYY
done

就是在每一次循环过程中给取出来的字符串后面添加“XXYY”字符,但是程序就是运行不出来正确的结果。 后来发现是因为我的文件是才Window下生产的,在Linux下读取这样的文件由于换行符的不同会导致程序运行不出来正确的结果。 解决办法:在Linux安装dos2unix小工具,经过该工具转化以后的文件再进行读取就没有问题了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux基金会推出ACT项目 帮助开发者遵守开源许可证

    Linux Foundation 正致力于通过组建新项目来改善开源的合规性,他们近日推出了一个 Automated Compliance Tooling(ACT...

    Debian社区
  • Linux文件权限管理

    Dream城堡
  • Linux 基金会与 RISC-V 基金会合作推广开源芯片

    Linux是全球最重要的开源软件,RISC-V则是近年来兴起的一个开源CPU指令集,现在这两个阵营宣布达成合作——Linux基金会与RISC-V基金会将共同合作...

    Debian社区
  • Debian GNU/Linux Stretch 9.6 发布

    Debian项目宣布第六版发布到最新稳定的Debian GNU/Linux 9.6 “Stretch”操作系统系列。Debian GNU/Linux 9.6 “...

    Debian社区
  • Linux Kernel 4.19 正式版本发布 将是长期支持版

    Greg Kroah-Hartman 在内核邮件列表上 宣布 释出 Linux 4.19。Linux 作者 Linus Torvalds 最近在 休假反省 ,L...

    Debian社区
  • Facebook 开源的一组 Linux 内核组件与工具

    近日,Facebook 开源了一套解决重要计算集群管理问题的 Linux 内核组件和相关工具,这些项目覆盖了资源控制、资源利用、工作负载隔离、负载均衡、测量和监...

    Debian社区
  • 理解 Linux 的虚拟内存

    前不久组内又有一次我比较期待的分享:“Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意...

    Debian社区
  • linux每日命令(35):grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expre...

    用户1214487
  • 企业制定开源战略的免费指南

    大多数使用开源的公司都了解其商业价值,但他们可能缺乏战略性地实施开源计划和获得全部回报的工具。根据 The New Stack 最近的一项调查,“开源计划的三大...

    Debian社区
  • linux每日命令(31):tar命令

    tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初...

    用户1214487

扫码关注云+社区

领取腾讯云代金券