首页 > 系统相关 >linux 中while 循环read读入数据 使用IFS指定分割符

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

时间:2023-12-31 21:34:01浏览次数:46  
标签:test1 IFS read pc1 cat ## while txt root

 

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]#

 

 

标签:test1,IFS,read,pc1,cat,##,while,txt,root
From: https://www.cnblogs.com/liujiaxin2018/p/17938020

相关文章

  • A Long read hybrid error correction algorithm based on segmented pHMM
    ALongreadhybriderrorcorrectionalgorithmbasedonsegmentedpHMM  2023/12/1511:06:36The"LongreadhybriderrorcorrectionalgorithmbasedonsegmentedpHMM"referstoaspecificapproachforerrorcorrectioninlong-readse......
  • BUG分享|报错:Cannot access Memory (@ 0xe00fffe4, Read, Acc Size: 4 Byte);移植FreeR
    引言在移植FreeRTOS到STM32F411CEU6上时,出现了烧录一次后,无法再次烧录的情况。现象烧录时报错:CannotaccessMemory(@0xe00fffe4,Read,AccSize:4Byte);弹窗:Connectionrefusedduetodevicemismatch!单片机:STM32F411CEU6烧录器:DAPLink现象:修改代码后,第一次可以......
  • ReentrantReadWriteLock源码阅读
    ReentrantReadWriteLock源码阅读目录ReentrantReadWriteLock源码阅读简介例子代码分析总览Syncstate定义lockcount和holdcountSync.HoldCounter类Sync类其他成员变量tryAcquiretryReleasetryAcquireSharedfullTryAcquireSharedtryReleaseSharedtryWriteLocktryReadLockSync类分......
  • const和readonly有什么区别?
    都可以标识一个常量。主要有以下区别:1、初始化位置不同。const必须在声明的同时赋值;readonly即可以在声明处赋值;2、修饰对象不同。const即可以修饰类的字段,也可以修饰局部变量;readonly只能修饰类的字段3、const是编译时常量,在编译时确定该值;readonly是运行时常量,在运行时确定该值......
  • mysql-循环(while 、repeat、loop)
    --whileDELIMITER$$CREATEPROCEDUREp7(INnINT)BEGIN DECLAREtotalINTDEFAULT0; WHILEn>0DO SETtotal:=total+n; SETn:=n-1; ENDWHILE; SELECTtotal;END$$CALLp7(2)--repeatDROPPROCEDUREIFEXISTSp8DELIMITER$$CREATEPROCEDUREp8(INnINT)BEGI......
  • Linux shell编程学习笔记36:read命令
     *更新日志 *2023-12-181.根据[美]威廉·肖特斯(Willian shotts)所著《Linux命令行大全(第2版)》            更新了-e、-i、-r选项的说明           2.更新了2.8的实例,增加了gif动图           3.补充......
  • C 语言中的 switch 语句和 while 循环详解
    C语言中的switch语句替代多重if..else语句,可以使用switch语句。switch语句用于选择多个代码块中的一个来执行switch(表达式){casex://代码块break;casey://代码块break;default://代码块工作原理switch表达式只会被计算一......
  • C 语言中的 switch 语句和 while 循环详解
    C语言中的switch语句替代多重if..else语句,可以使用switch语句。switch语句用于选择多个代码块中的一个来执行switch(表达式){casex://代码块break;casey://代码块break;default://代码块工作原理switch表达式只会被计算一......
  • ThreadPoolExecutor源码学习
    Java构建线程的方式集成Thread实现Runnable实现CallAble线程池方式Java提供了Executors创建(不推荐,不方便进行控制)推荐手动创建线程池ThreadPoolExecutor。ThreadPoolExecutor参数intcorePoolSize核心线程数intmaximumPoolSize最大线程数,最大减核心是非核心线程......
  • Java线程池ThreadPoolExecutor源码解析
    Java线程池ThreadPoolExecutor源码解析1.ThreadPoolExecutor的构造实现以jdk8为准,常说线程池有七大参数,通常而言,有四个参数是比较重要的publicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,lon......