zoukankan      html  css  js  c++  java
  • shell读取文件不改变文本格式

    实践促进提升!

    项目中遇到需要把文件内容不改变格式的情况下 依次读取行内容,按照以前的做法,直接通用模式读取会把空格字符自动删除部分

    为什么会这样呢?因为 IFS,如果在 shell script 里没有明确指定 IFS 的话,IFS 会默认用来分割空格、制表、换行等,所以读取文本行里多余的空格和换行都被自动缩进了。

    常见文件读取方式:【可以自己弄个文件试一下】

    # 1
    cat filename | while read  line
    do
         echo "-"$line"-"
    done
    
    # 2
    while read -r LINE
    do
    echo '-'$LINE'-'
    done  < filename

     执行上面的脚本

     所以,为了不改变文本格式,把 IFS 设置 为 “”  ,

    IFS=""
    # 1
    cat filename | while read  line
    do
         echo "-"$line"-"
    done
    
    # 2
    while read -r LINE
    do
    echo '-'$LINE'-'
    done  < filename

    得到如下,格式不变的行内容。

  • 相关阅读:
    数学考试
    奇♂妙拆分
    11.25
    11.21
    11.20
    11.19
    11.18
    11.15
    11.14作业
    11.14
  • 原文地址:https://www.cnblogs.com/chenpython123/p/12915566.html
Copyright © 2011-2022 走看看