经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下:

1.通过read命令完成.

read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中.

利用read读取文件时,每次调用read命令都会读取文件中的"一行"文本.

当文件没有可读的行时,read命令将以非零状态退出.

1 cat data.dat | while read line
2 do
3     echo "File:${line}"
4 done
5
6 while read line
7 do
8     echo "File:${line}"
9 done < data.dat

2.使用awk命令完成

awk是一种优良的文本处理工具,提供了极其强大的功能.

利用awk读取文件中的每行数据,并且可以对每行数据做一些处理,还可以单独处理每行数据里的每列数据.

1 cat data.dat | awk '{print $0}'
2 cat data.dat | awk 'for(i=2;i<NF;i++) {printf $i} printf "\n"}'

第1行代码输出data.dat里的每行数据,第2代码输出每行中从第2列之后的数据.

如果是单纯的数据或文本文件的按行读取和显示的话,使用awk命令比较方便.

3.使用for var in file 命令完成

for var in file 表示变量var在file中循环取值.取值的分隔符由$IFS确定.

1 for line in $(cat data.dat)
2 do
3     echo "File:${line}"
4 done
5
6 for line in `cat data.dat`
7 do
8     echo "File:${line}"
9 done

如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值.

如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值.

可以通过把IFS设置为换行符来达到逐行读取的功能.

IFS的默认值为:空白(包括:空格,制表符,换行符).

转载于:https://www.cnblogs.com/leoking01/p/7680413.html

【Shell脚本】逐行处理文本文件相关推荐

  1. Shell脚本逐行处理文本文件技巧

    本文主要给大家介绍了关于Shell脚本如何逐行处理文本文件的相关资料 经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下 ...

  2. shell脚本 逐行读取文本并且 进行字符串的截取

    例如有个文本文件 1234  ji adfa jiji adfasd qqwe // 注意一定要有个回车,这样脚本才会读到最后一行 while read typeline do #get line t ...

  3. linux合并txt文件命令,如何在Linux Shell脚本中合并文本文件中同一...

    我从Nagios使用wget命令下载了html文件,然后使用以下代码将该htmlfile转换为Textfile: html2text -width 180 file.html >a.txt 然后 ...

  4. shell 脚本逐行读取多个文件,并逐行对应

    #!/bin/bash for i in `seq 448` do aaa=`sed -n "$i"p num.txt` bbb=`sed -n "$i"p t ...

  5. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件

    原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...

  6. Linux shell脚本各种烧脑题编写

    第一列达到100的时候 第二列数字从100向1 处理 第二列数字到50 第三列数字从100递增 第二列数字为0时不显示 第四列数字从1递增 ============================== ...

  7. Linux Shell 脚本知识点

    正则表达式在线生成工具: http://tools.jb51.net/regex/create_reg 0. shell 调试 复制代码 代码如下: sh -x somefile.sh 在somefi ...

  8. shell for循环命令行_精心汇总的24道shell脚本面试题

    虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问到 shell 脚本的问题,它有助于你在工作环境中自动完成很多任务. 如下是一些面试过程中,经常会遇 ...

  9. 面试准备-Shell脚本

    一.Shell脚本是什么? 一个Shell脚本是一个文本文件,包含一个或多个命令.我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务 ...

  10. shell脚本面试题

    Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件( ...

最新文章

  1. 虚拟社会建设需要“网络社工”助力
  2. 【Gym - 101986F】Pizza Delivery(Dijkstra最短路,建图方式,反向建图,Tarjan求桥,图论模板)
  3. c语言求a1到an的和,C语言菜鸟基础教程之a++与++a
  4. java nextbyte()_java.util.Scanner.hasNextByte()方法实例
  5. SpringBoot学习笔记001--创建第一个spring boot应用
  6. 2039 骑马修栅栏
  7. WKWebview的内存问题
  8. Tensorflow2.0学习-加载和预处理数据 (七)
  9. VS实现格式化代码及代码缩进
  10. MATLAB实现三边定位
  11. VS 下环境覆盖率测试
  12. 软帝出品2019阿里面试题大全(含答案解析)
  13. myeclipse误删文件恢复
  14. 异常解决——Tomcat启动异常:Cannot assign requested address
  15. 05.Linux 常用命令-网络命令\关机重启命令
  16. 5分钟搞定 微信早安推送 升级版
  17. 使用DGL进行异构图元路径采样
  18. Java腐烂的橘子leetcode
  19. MySQL:安装软件和基本操作
  20. 从python开始学编程vamei_《从Python开始学编程》作者:Vamei - kindle电子书下载 - 我的书库...

热门文章

  1. linux内核链表以及list_entry--linux内核数据结构(一)
  2. UISegmentedControl 分段器加载不同的viewcontroller
  3. Oracle会话和进程数的监控
  4. OCI读取单条记录(C)
  5. Flutter事件与手势识别
  6. python 笔记 之 sqlalchemy操作数据库-创建表
  7. Java集合干货——ArrayList源码分析
  8. 运维监控利器Nagios:概念、结构和功能
  9. mysql多实例实现以及主从同步
  10. 渐变显示渐变消失的BackgroundView