一、三种方法

1.exec读取文件

exec <file
sum=0
while read line
do
cmd
done

2. cat读取文件

cat file|while read line
do
cmd
done
  • 推荐用途:

    通过awk等三剑客获取文件中的数据后,可以使用这种方法用管道抛给while按行读取

3. while循环最后加重定向

while read line
do
cmd
done<file
  • 推荐用途:

    直接按行读取文件中的内容时,推荐用此方法

二、案例

读取web日志文件,把日志文件中每行中的访问字节数相加,统计访问总量

  • cat /server/scripts/c9.sh
#!/bin/bash
sum=0
exec <$1
while read line
do
size=`echo $line|awk '{print $10}'`
expr $size + 1 &>/dev/null
if [ $? -ne 0 ];then
continue
fi
((sum=sum+$size))
done
echo "${1}:total:${sum}bytes =`echo $((${sum}/1024))`KB"

其他2-while+read按行读取文件的更多相关文章

  1. C++/Php/Python/Shell 程序按行读取文件或者控制台

    写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下.方便使用 1. C++ 读取文件 #include<stdio.h> #include<string.h> i ...

  2. Python跳过第一行读取文件内容

    Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...

  3. python_基础学习_01_按行读取文件的最优方法

    python 按行读取文件 ,网上搜集有N种方法,效率有区别,先mark最优答案,下次补充测试数据 with open('filename') as file: for line in file: d ...

  4. Java利用内存映射文件实现按行读取文件

    我们知道内存映射文件读取是各种读取方式中速度最快的,但是内存映射文件读取的API里没有提供按行读取的方法,需要自己实现.下面就是我利用内存映射文件实现按行读取文件的方法,如有错误之处请指出,或者有更好 ...

  5. python 按每行读取文件怎么去掉换行符

    python按每行读取文件后,会在每行末尾带上换行符,这样非常不方便后续业务处理逻辑,需要去掉每行的换行符,怎么去掉呢?看下面的案例: >>> a = "hello wor ...

  6. Shell按行读取文件的3种方法

    Shell按行读取文件的方法有很多,常见的三种方法如下: 要读取的文件: [root@mini05 -]# cat file.info 写法一: [root@mini05 -]# cat read1. ...

  7. Python按行读取文件、写文件

    Python按行读取文件 学习了:https://www.cnblogs.com/scse11061160/p/5605190.html file = open("sample.txt&qu ...

  8. shell脚本,按行读取文件的几种方法。

    第一种方法用while实现按读取文件.[root@localhost wyb]# cat a.txt 第一行 aaaaaa 第二行 bbbbbb 第三行 cccccc 第四行 dddddd 第五行 e ...

  9. C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结。

    C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结. 一.总结 C++/Php/Python/Shell 程序按行读取文件或者控制台(php读取标准输入:$fp = fope ...

  10. C++ 按行读取文件并打印

    #include<iostream> #include<fstream> #include<string> #include <vector> #inc ...

随机推荐

  1. oracle的dblink创建连接查询及使用

    https://www.cnblogs.com/muhai/p/15527463.html https://www.cnblogs.com/leipei2352/archive/2011/04/21/ ...

  2. linux下生成证书

    1.生成私有证书 # 生成需要密码的密钥文件server.key openssl genrsa -des3 -out server.key 2048 # 转成不用密码的rsa密钥文件 openssl ...

  3. 常用 包vue-clipboard2

    包名称 内容 剪切板 vue-clipboard2

  4. openframeworks 设置不显示控制台窗口

    1.设置Linker 下的System->选择Windows 2.设置入口函数,然后编译就可以了 int APIENTRY wWinMain(_In_ HINSTANCE hInstance, ...

  5. @Configuration 配置类打断点后,一启动项目读取到该配置类的话就会进断点

    @Configuration 配置类的话,打断点的时候,一启动项目就会读取配置信息,然后你在@Configuration 配置的类中打断点的话,一启动项目就会读取配置类,然后就会进断点,跟你平常的co ...

  6. delphi get post

    procedure GetDemo;var IdHttp : TIdHTTP; Url : string;//请求地址 ResponseStream : TStringStream; //返回信息 R ...

  7. 本地开发环境使用redis

    1.使用cmd 连接后,查询结果出现乱码时, 尝试连接时加--raw 参数 2.如果还是乱码,设置cmd 窗口编码 chcp 65001 就是换成UTF-8代码页chcp 936 可以换回默认的GBK ...

  8. Cleanest XMaster绿色解压最新版下载9.6密钥激活码

    cad安装报错换了好几个版本都不行,用这个卸载了一下,确实有用 Cleanest XMaster绿色版cad卸载工具分享下载 地址一(百度网盘) 地址二(直接下载) 9.6.05密钥:[AtrXShX ...

  9. Mybatis动态SQL语句大全

    读完这篇文章里你能收获到 Mybatis动态SQL语句大全 Mybatis中如何定义变量 Mybatis中如何提取公共的SQL片段 1. If 语句 需求:根据作者名字和博客名字来查询博客!如果作者名 ...

  10. 扩linux 主分区 xfs 格式的

    在centos8 上 扩主分区 # 扩系统盘,第一个分区 growpart /dev/vda 1 #后面加挂接点 一般是 / xfs_growfs  / # 查看 df -h