其他2-while+read按行读取文件
一、三种方法
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按行读取文件的更多相关文章
- C++/Php/Python/Shell 程序按行读取文件或者控制台
写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下.方便使用 1. C++ 读取文件 #include<stdio.h> #include<string.h> i ...
- Python跳过第一行读取文件内容
Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...
- python_基础学习_01_按行读取文件的最优方法
python 按行读取文件 ,网上搜集有N种方法,效率有区别,先mark最优答案,下次补充测试数据 with open('filename') as file: for line in file: d ...
- Java利用内存映射文件实现按行读取文件
我们知道内存映射文件读取是各种读取方式中速度最快的,但是内存映射文件读取的API里没有提供按行读取的方法,需要自己实现.下面就是我利用内存映射文件实现按行读取文件的方法,如有错误之处请指出,或者有更好 ...
- python 按每行读取文件怎么去掉换行符
python按每行读取文件后,会在每行末尾带上换行符,这样非常不方便后续业务处理逻辑,需要去掉每行的换行符,怎么去掉呢?看下面的案例: >>> a = "hello wor ...
- Shell按行读取文件的3种方法
Shell按行读取文件的方法有很多,常见的三种方法如下: 要读取的文件: [root@mini05 -]# cat file.info 写法一: [root@mini05 -]# cat read1. ...
- Python按行读取文件、写文件
Python按行读取文件 学习了:https://www.cnblogs.com/scse11061160/p/5605190.html file = open("sample.txt&qu ...
- shell脚本,按行读取文件的几种方法。
第一种方法用while实现按读取文件.[root@localhost wyb]# cat a.txt 第一行 aaaaaa 第二行 bbbbbb 第三行 cccccc 第四行 dddddd 第五行 e ...
- C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结。
C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结. 一.总结 C++/Php/Python/Shell 程序按行读取文件或者控制台(php读取标准输入:$fp = fope ...
- C++ 按行读取文件并打印
#include<iostream> #include<fstream> #include<string> #include <vector> #inc ...
随机推荐
- DP5340:国产兼容替代CS5340立体声音频A/D转换器芯片
DP5340简介 DP5340 是一款完整的采样.模数音频信号转换. 抗混叠滤波的芯片,在串行格式下以每声道最高 200kHz 采样率高达 24 位宽,并支持大部分的音频 数据格式. DP5340 基 ...
- Linux-curl下载报错解决方法
报错提示: curl: (92) HTTP/2 stream 1 was not closed cleanly before end of the underlying stream ==> E ...
- Nextcloud报 PHP zip 模块未安装
wget https://pecl.php.net/get/zip自动下载最新包 tar xf zip-1.20.0.tgz cd zip-1.20.0/ phpize 报错system libzip ...
- 使用Promethues和Grafana监控Flink
之前使用Influxdb储存Metrics经常会出现数据写不进去的问题,当Influxdb重启之后又能写进去,遂将数据存储部分换成Promethues,因为Flink采用PutGateway的方式,需 ...
- SpringBoot打成war包,部署到Tomcat服务器
SpringBoot默认达成jar包,使用SpringBoot构想web应用,默认使用内置的Tomcat.但考虑到项目需要集群部署或者进行优化时,就需要打成war包部署到外部的Tomcat服务器中. ...
- vue3 门户网站搭建2-ngnix
路由配好了,需要调试下 build 后是否可用,这时我们需要一个服务端来运行静态网页. 官网直接下载一个 windows 版本的 ngnix 即可: http://nginx.org/en/downl ...
- shell脚本变量加减
#! /bin/bash test_1=1 test_2=2 test = $(expr $test_1 - $test_2) #减法 test = $(expr $test_1 + $test_2 ...
- <string> <cstring> <string.h>
<string>是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string<char>的type ...
- vue 项目中引入图片使用相对路径,图片不显示的问题
在 vue 项目中引入图片,路径为相对路径时,会显示 src="[object Module]" 采用 import 方式引入图片,再设置到 src 中 会正常显示 file-lo ...
- 查看oracle死锁
select A.sid, b.serial#, decode(A.type, 'MR', 'Media Recovery', 'RT','Redo Thread', 'UN','User Name' ...