【shell脚本】逐行处理文本文件
来源:互联网 发布:雨滴软件 编辑:程序博客网 时间:2024/06/05 18:42
经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下:
1.通过read命令完成.
read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中.
利用read读取文件时,每次调用read命令都会读取文件中的”一行”文本.
当文件没有可读的行时,read命令将以非零状态退出.
cat data.dat | while read linedo echo "File:${line}"done或while read linedo echo "File:${line}"done < data.dat
可输入命令行参数(文件名):
FILENAME="$1"cat $FILENAME | while read linedo echo "File:${line}"done
2.使用awk命令完成
awk是一种优良的文本处理工具,提供了极其强大的功能.
利用awk读取文件中的每行数据,并且可以对每行数据做一些处理,还可以单独处理每行数据里的每列数据.
cat data.dat | awk '{print $0}'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确定.
for line in $(cat data.dat)do echo "File:${line}"donefor line in `cat data.dat`do echo "File:${line}"done
如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值.
如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值.
可以通过把IFS设置为换行符来达到逐行读取的功能.
IFS的默认值为:空白(包括:空格,制表符,换行符).
阅读全文
0 0
- 【shell脚本】逐行处理文本文件
- linux【Shell脚本】逐行处理文本文件
- 【Shell脚本】逐行处理文本文件 && 空格变换行
- 逐行读取文本文件的 shell 脚本
- [shell脚本]逐行处理文本
- 用linux shell逐行读取文本文件内容
- 用Linux Bash script逐行处理文本文件
- shell脚本读写文本文件
- 文件逐行读取并进行相关处理的Unix Shell 脚本
- shell脚本,每次读取文件的一行,逐行读取并处理
- shell脚本,每次读取文件的一行,逐行读取并处理
- Linux Shell 文本文件处理
- Linux bash shell 逐行读取文本文件的三种方法
- Shell逐行处理文件的最后一行
- 用shell脚本生成文本文件
- 逐行读取文本文件
- J2ME逐行读取文本文件
- 如何逐行读取文本文件
- ibatis存储过程调用
- EasyUI入门4 datagrid数据加载的正确方式
- unity C#中,用BinaryWrite和BinaryReader来存取数据
- opencv_traincascade 训练自己的分类器
- ElasticSearch 5.0.0 安装部署常见错误或问题
- 【shell脚本】逐行处理文本文件
- iOS 模块详解—「Runloop 面试、工作」看我就
- spring中的简单AOP
- 1、初识socke
- 在myeclipse利用ant构建时遇到The path xxx appears to be part of Subversion 1.7 (SVNKit 1.4) or greater解决办法
- 加密算法
- bootstrap的按钮特性
- 枚举-enumeration
- 使用git和github管理自己的项目---基础操作学习