首页 > 系统服务 > 详细

shell读取文件不改变文本格式

时间:2020-05-19 11:13:54      阅读:50      评论:0      收藏:0      [点我收藏+]

实践促进提升!

 

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

为什么会这样呢?因为 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

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

技术分享图片

 

shell读取文件不改变文本格式

原文:https://www.cnblogs.com/chenpython123/p/12915566.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!