linux下awk读取文件,精通awk系列(3):铺垫知识:读取文件的几种方式

本文将要为您介绍的是精通awk系列(3):铺垫知识:读取文件的几种方式,具体完成步骤:

回到:

Linux系列文章

Shell系列文章

Awk系列文章

读取文件的几种方式

读取文件有如下几种常见的方式:

a5789a3e26c741c4c2862cdd58d4c1a4.png

下面使用Shell的read命令来演示前4种读取文件的方式(第五种按字节数读取的方式read不支持)。

按字符数量读取

read的-n选项和-N选项可以指定一次性读取多少个字符。

# 只读一个字符

read -n 1 data

# 读100个字符,但如果不足100字符时遇到换行符则停止读取

read -n 100 data < a.txt

# 强制读取100字符,遇到换行符也不停止

read -N 100 data < a.txt

如果按照字符数量读取,直到把文件读完,则使用while循环,且将文件放在while结构的后面,而不能放在while循环的条件位置:

# 正确

while read -N 3 data;do

echo "$data"

done

# 错误

while read -N 3 data < a.txt;do

echo "$data"

done

按分隔符读取

read命令的-d选项可以指定读取文件时的分隔符。

# 一直读取,直到遇到字符m才停止,并将读取的数据保存到data变量中

read -d "m" data

如果要按分隔符读取并读完整个文件,则使用while循环:

while read -d "m" data ;do

echo "$data"

done

按行读取

read默认情况下就是按行读取的,一次读取一行。

# 从a.txt中读取第一行保存到变量data中

read line

如果要求按行读取完整个文件,则使用while循环:

while read line;do

echo "$line"

done

一次性读整个文件

要一次性读取完整个文件,有两种方式:

按照字符数量读取,且指定的字符数要大于文件的总大小

按分隔符读取,且指定的分隔符是文件中不存在的字符,这样的话会一直读取,因为找不到分隔符而读完整个文件

# 指定超出文件大小的字符数量

read -N 1000000 data

echo "$data"

# 指定文件中不存在的字符作为分隔符

read -d "_" data

echo "$data"精通awk系列(3):铺垫知识:读取文件的几种方式就为您介绍到这里,感谢您关注懒咪学编程c.lanmit.com.

本文地址:https://c.lanmit.com/czxt/Linux/25904.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值