linux 中while 循环read读入数据 使用IFS指定分割符

 

001、测试数据

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt        ## 测试数据
d_j j k
d d_kk

 

002、不指定分隔符

复制代码
[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt                                    ##   测试数据
d_j j k
d d_kk
[root@pc1 test1]# cat a.txt | while read i; do echo $i; done   ## 只给一个变量,默认读入的是整行
d_j j k
d d_kk
[root@pc1 test1]# cat a.txt | while read {i,j}; do echo $i; done   ## 给两个变量,默认以空格或者制表符分割
d_j
d
[root@pc1 test1]# cat a.txt | while read {i,j,k}; do echo $i; done  ## 同上
d_j
d
[root@pc1 test1]# cat a.txt | while read {i,j,k}; do echo $j; done     ## 同上
j
d_kk
[root@pc1 test1]# cat a.txt | while read {i,j,k}; do echo $k; done    ## 多个变量时,默认以空格分割
k

[root@pc1 test1]#
复制代码

 

003、使用IFS,但是什么也不指定

复制代码
[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt                            ## 测试数据
d_j j k
d d_kk
[root@pc1 test1]# cat a.txt | while IFS= read i; do echo $i; done   ## 使用IFS,但是什么也不指定,默认读入整行
d_j j k
d d_kk
[root@pc1 test1]# cat a.txt | while IFS= read {i,j}; do echo $i; done   ## 给与两个变量,默认读入整行,第一个变量
d_j j k
d d_kk
[root@pc1 test1]# cat a.txt | while IFS= read {i,j,k}; do echo $i; done   ## 使用3个变量,默认读入整行,
d_j j k
d d_kk
[root@pc1 test1]# cat a.txt | while IFS= read {i,j,k}; do echo $j; done    ## 使用3个变量,读入整行,2变量为空


[root@pc1 test1]# cat a.txt | while IFS= read {i,j,k}; do echo $k; done    ## 同上


[root@pc1 test1]#
复制代码

 

 

004、使用IFS,并指定分隔符

复制代码
[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt                         ## 测试数据
d_j j k
d d_kk
[root@pc1 test1]# cat a.txt | while IFS="_" read i; do echo $i; done  ##指定分隔符,给一个变量,变量是整行
d_j j k
d d_kk
[root@pc1 test1]# cat a.txt | while IFS="_" read {i,j}; do echo $i; done   ## 指定分隔符,给2个变量,按照分割符分割
d
d d
[root@pc1 test1]# cat a.txt | while IFS="_" read {i,j,k}; do echo $i; done    ## 同上
d
d d
[root@pc1 test1]# cat a.txt | while IFS="_" read {i,j,k}; do echo $j; done
j j k
kk
[root@pc1 test1]# cat a.txt | while IFS="_" read {i,j,k}; do echo $k; done


复制代码

 

005、修改测试数据,继续测试

复制代码
[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt      ## 修改后测试数据
d_j j k_rrtt_ppii
d d_kk_yyy_uuu_www
[root@pc1 test1]# cat a.txt | while IFS="_" read i; do echo $i; done   ## 指定分割符,给一个变量,读入整行
d_j j k_rrtt_ppii
d d_kk_yyy_uuu_www
[root@pc1 test1]# cat a.txt | while IFS="_" read {i,j}; do echo $i; done ##指定分隔符,给两个变量,按照分隔符分割
d
d d
[root@pc1 test1]# cat a.txt | while IFS="_" read {i,j}; do echo $j; done  ## 指定分隔符,给两个变量,按分隔符分割,最后一个变量兜底
j j k_rrtt_ppii
kk_yyy_uuu_www
[root@pc1 test1]# cat a.txt | while IFS="_" read {i,j,k}; do echo $j; done   ## 同上
j j k
kk
[root@pc1 test1]# cat a.txt | while IFS="_" read {i,j,k}; do echo $k; done    ## 同上
rrtt_ppii
yyy_uuu_www
复制代码

 。

 

posted @   小鲨鱼2018  阅读(1445)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-12-31 linux 中wget命令的几个常用选项
2022-12-31 从NCBI中下载SRA数据
2022-12-31 linux 中对带有空格、括号的文件进行重命名
2022-12-31 linux 中删除文件名中的括号
2022-12-31 linux 中删除文件名中的空格
2022-12-31 linux中统计文本中每一行中空格的总数目
2022-12-31 linux 中实现文件名的补齐
点击右上角即可分享
微信分享提示