编写不同的文本处理和文件操作脚本时,通常需要对文件中的行,单词和字符进行迭代,尽管这个问题看起来很简单,但是实现起来却常常出现问题,下面,就让我们来看看怎样实现上述功能。

为了实现上述的功能,我们需要分三个步骤叙述

一.迭代文件中的每一行

我们可以通过用一个 while 循环从标准输入中读取,因此,它在每一次迭代中都会读取一行。

下面的方法可以将stdin 重定向到文件:

首先我们看下文件中的内容是怎样的:

NO   Hello   Mark    Percent
1   Sarath  45  90
2   Alex    49  98
3   Anu 45  90


下面给出实现的脚本:

#!/bin/bash
while read line
do
echo $line
done < data.txt


运行下我们的脚本,结果如图所示:

二.迭代一行中的每一个单词

我们同样可以用while循环得到每一行,之后利用 IFS 获取一行的各个字段

下面给出实现的脚本:

#!/bin/bash
while read line
do
for word in $line
do
echo $word;
done
done < data.txt  

运行下我们的脚本,结果如图所示:

三.迭代一个单词中的每一个字符

我们利用一个 for 循环对变量 i 进行迭代,迭代范围从0到字符串的长度。在每次迭代中,我们可以用一个特殊的记法:

${string:start:position:No_of_characters}

意思是:从字符串中提取一个字符

这被称为是子串提取技术,${word:start:position:No_of_characters} 返回变量word所包含的字符串中的一个子串

${#word} 返回变量的长度

下面给出实现的脚本:

#!/bin/bash
while read line
do
for word in $line
do
for(( i=0;i<${#word};i++ ))
do
echo ${word:i:1};
done
done
done < data.txt  


运行下我们的脚本,结果如图所示:

说明:由于显示的内容太长,这里的截图显示的只是输出的一部分字符

对文件中的行,单词和字符进行迭代相关推荐

  1. java中获取文件总行数_关于java:如何以有效的方式获取文件中的行数?

    本问题已经有最佳答案,请猛点这里访问. 我有一个大文件. 它包括大约3.000-20.000行. 如何使用Java获取文件中的行总数? 从你的评论到答案来判断,你要找的词是"有效的" ...

  2. sed删除以什么开头的内容_使用 sed 命令删除文件中的行

    原标题:使用 sed 命令删除文件中的行 Sed 代表流编辑器 Stream Editor ,常用于 Linux 中基本的文本处理.sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要 ...

  3. linux中sed -i命令修改文件内容、在文件中插入行、删除文件中删除行

    文章目录 0.sed -i与sed 1.修改文件内容 2.在文件中插入行 3.在文件中删除行 4.使用find查找文件,并用 | xargs传输文件名给sed命令 0.sed -i与sed sed - ...

  4. Tools下的mdscongiguer 文件中 43行 oracle 配置 发现需要连接库 -lclntsh libclntsh.so 库是个什么东西呢?...

    Tools下的mdscongiguer     文件中 43行  oracle 配置      发现需要连接库 -lclntsh      libclntsh.so 库是个什么东西呢? 分想一个知乎网 ...

  5. python之从文件中按行读取数据

    #!/usr/bin/env python3 # -*- coding: utf-8 -*-__author__ = 'jiangwenwen'# 从文件中按行读取数据 file = open(&qu ...

  6. 【C++】读取txt文件中指定行的内容

    使用c++读取TXT文件中指定行的内容 classification_classes_ILSVRC2012.txt:下载链接 验证: #include <iostream> #includ ...

  7. python文件中单词的删除_使用python删除文件中的多余单词

    嗨,我正在学习Python,出于好奇,我编写了一个程序来删除文件中多余的单词. 我正在比较文件text1.txt中的测试.和'text2.txt',基于text1中的测试,我删除了test2中多余的单 ...

  8. c语言去掉文件中重复单词,可以读出文件中出现所有单词的出现次数并显示求只显示出现最多5...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 可以读出文件中出现所有单词的出现次数并显示求只显示出现次数最多的5个单词及其出现次数 现代码如下: #include #include #include ...

  9. 编写一个脚本,统计log文件中首个单词出现的次数

    在[金阳光测试]Android自动化第一季第一讲--预备知识中有这样一个面试题 题目如下: 编写一个脚本,统计log文件中首个单词出现的次数,如: error:xxx waring:xxx error ...

最新文章

  1. HTML5中figure标签使用实例
  2. 7.7. 其他证书工具
  3. c 子类对象 访问父类对象受保护成员_面向对象编程(OOP)
  4. java面试手写单链表_(转)面试大总结之一:Java搞定面试中的链表题目
  5. php面向对象编程调用结果,【PHP面向对象(OOP)编程入门教程】18.__call()处理调用错误...
  6. 解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题
  7. 什么叫pmt测试分析_圆偏振发光光谱仪——南方科技大学分析测试中心设备介绍第51期...
  8. 第三方app_官方打不过第三方APP之 知乎 篇
  9. Python爬虫Scrapy入门
  10. LINUX安装TensorRT及特别注意事项
  11. 2021-09-27
  12. Linux的grep命令源码详解,Linux下的grep命令详解
  13. 中标麒麟运行java_中标麒麟系统上安装java、eclipse指南
  14. 捷联惯导系统学习2.3(方向余弦阵微分方程)
  15. angular封装七牛云图片上传,解决同一页面多个上传按钮分别上传
  16. 俄亥俄州立大学计算机专业排名,俄亥俄州立大学哥伦布分校计算机科学专业排名第30(2020年USNEWS美国排名)...
  17. 工作流 java snaker_snaker工作流引擎
  18. iphone调整屏幕方向_如何锁定iPhone或iPad的屏幕方向
  19. 企业成功的秘密:成为独角兽
  20. 如何学习Android及如何利用android来赚钱

热门文章

  1. dyld: Library not loaded: @rpath/MySDK.framework/MySDK 错误解决
  2. react七——react-redux
  3. 在RHEL5下构建DHCP及DHCP中继服务器
  4. iOS旋钮动画-CircleKnob
  5. 39[dropbox etc]
  6. .Net 项目代码风格规范
  7. SPRING STS Virgo OSGI 开发一 : bundle 项目的创建
  8. 单用户多角色权限的MSSQL实现
  9. IKE IPSEC ×××
  10. [bat] 使用bat文件保证指定程序运行