Linux 下 Shell 命令 IFS 分隔符 -- 应用场景 解决办法
Linux 下 Shell 命令 IFS 分隔符 – 应用场景 && 解决办法
文章目录
- Linux 下 Shell 命令 IFS 分隔符 -- 应用场景 && 解决办法
- 场景一 -- 变量输出
- 问题
- 问题描述
- 测试文件
- 操作
- 解决办法
- 通过定义 **`IFS`** 分隔符解决
- 场景二 -- 文件读取
- 问题
- 问题描述
- 测试文件
- 操作
- 解决办法
- 方法一:定义 **`IFS`** 分隔符
- 方法二:**`while read`** 方式解决
- 参考
场景一 – 变量输出
问题
问题描述
通过 "cat" 读取文件行,作为变量后,通过 echo 输出变量,变量值中 "相连的多个空格" 被 "合并为一个空格" 输出。
测试文件
$ cat test_IFS1.txt
a b c d e f g h i
1 2 3 4 5 6
操作
$ line=`tail -1 test_IFS1.txt` && echo ${line}
1 2 3 4 5 6 # 输出结果中,空格被合并了
解决办法
通过定义 IFS
分隔符解决
$ IFS="\n" && line=`tail -1 test_IFS1.txt` && echo ${line} && unset IFS
1 2 3 4 5 6
场景二 – 文件读取
问题
问题描述
'cat 命令' 读取文件,通过 'for 循环' 输出每行内容,当行中存在空格,'echo 输出' 异常。
测试文件
$ cat test_IFS2.txt
line1 --- word1 word2 word3 word4
line2 --- word1 word2 word3 word4
line3 --- word1 word2 word3 word4
line4 --- word1 word2 word3 word4
操作
$ for line in `cat test_IFS2.txt`; do echo ${line}; done
line1
---
word1
word2
word3
word4
line2
---
word1
word2
word3
word4
line3
---
word1
word2
word3
word4
line4
---
word1
word2
word3
word4
解决办法
方法一:定义 IFS
分隔符
IFS=$'\n'
– 输出正常
# IFS=$'\n' -- 输出正常
$ IFS=$'\n' && for line in `cat test_IFS2.txt`; do echo ${line}; done && unset IFS
line1 --- word1 word2 word3 word4
line2 --- word1 word2 word3 word4
line3 --- word1 word2 word3 word4
line4 --- word1 word2 word3 word4
- 说明
- IFS='\n' -- 将字符 n 作为 IFS 的换行符
- IFS=$"\n" -- \n确实通过 '$' 转化为了换行符,但仅当被解释时(或被执行时)才被转化为换行符- IFS=$'\n' -- 输出正常
方法二:while read
方式解决
$ cat test_IFS2.txt | while read line; do echo ${line}; done
line1 --- word1 word2 word3 word4
line2 --- word1 word2 word3 word4
line3 --- word1 word2 word3 word4
line4 --- word1 word2 word3 word4
参考
- shell命令之 IFS 分隔符;cat逐行读取文件
Linux 下 Shell 命令 IFS 分隔符 -- 应用场景 解决办法相关推荐
- linux命令执行的通过程,Linux下shell命令执行过程简介
浅析linux 下shell命令执行和守护进程 执行shell脚本有以下几种方式 1.相对路径方式,需先cd到脚本路径下 [root@banking tmp]# cd /tmp [root@banki ...
- linux中安shell怎么传入参数,【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】...
方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...
- linux调用一个函数失败 打印错误,linux下settimeofday函数调用失败,何故?解决办法...
当前位置:我的异常网» C语言 » linux下settimeofday函数调用失败,何故?解决办法 linux下settimeofday函数调用失败,何故?解决办法 www.myexceptions ...
- Linux 下 Shell 命令的分类及用法
当你打算真正操纵好你的 Linux 系统,没有什么能比命令行界面更让你做到这一点.为了成为一个 Linux 高手,你必须能够理解 Shell命令的不同类型,并且会在终端下正确的使用它们. 在 Linu ...
- Linux下shell命令:ps
Linux速查手册. 最近整理了一下linux下的shell命令,为什么要整理呢?因为在十几年的IT工作中总遇到要查看某个命令的用法的问题,早先的处理方式是去百度一下,后来感觉百度查到的内容不太准确和 ...
- Linux下shell命令:top
小推广:Linux速查手册. 最近整理了一下linux下的shell命令,为什么要整理呢?因为在十几年的IT工作中总遇到要查看某个命令的用法的问题,早先的处理方式是去百度一下,后来感觉百度查到的内容不 ...
- Linux下Shell命令小结(转载自StartOS,【原来的雨林木风】)
本文转载自:StartOS,http://www.startos.org/help_11.html. 今天在看新闻时看到雨林木风操作系统什么更新了啊,改名了啊,这些都没有怎么关注, 就把左边的选项卡一 ...
- linux下shell命令之hwclock
转载:http://blog.gesha.net/archives/221/ #linux系统时间和硬件时钟问题(date和hwclock) ##总结一下hwclock,这个容易晕: 1)/etc/s ...
- 【Linux】linux中某个命令找不到的解决办法
问题 在linux系统中执行 php -v,提示: 解决办法: 1.查看当前系统的环境变量 php 安装好后,直接执行 php 时,系统首先会去/usr/bin下寻找命令,如果不在这个目录中,当然就会 ...
最新文章
- Analysis Services基础知识——深入SQL Server 2008
- selenium代码练习
- [云炬创业基础笔记]第二章创业者测试9
- [小程序]小程序框架的简单页面布局
- MySQL优化:数据量很大,分页查询很慢,有什么优化方案?
- php编写用户登录页面,js+php实现静态页面实时调用用户登陆状态的方法
- 广州海珠区计算机学校,2019广州海珠区电脑派位和对口直升表
- 19张图带你梳理SpringCloud体系中的重要知识点!
- SpriteKit游戏开发适配iPad/iPhone6/7/8/Plus及iPhoneX的尺寸及安全区域
- centos 6.5 php nginx,CentOS6.5上安装nginx与php5.5
- jave 逻辑运算 vs 位运算 + Python 逻辑运算 vs 位运算
- Ubuntu中ssh远程报错:packet_write_wait: Connection to 192.168.163.190 port 22: Broken pipe lost connection
- 基于javaweb仓库管理系统简易课程报告-软件工程
- 阿里巴巴2019实习生招聘正式启动
- 小米路由器4a开发版固件_小米路由器4a刷第三方固件
- excel如何转化成word文件
- 微信小程序开发实战3 使用Go语言开发Web服务
- 这三个音频变声编辑软件教你怎么给音频变声
- java foxpro_面向对象的语言主要包括C、Java、VB、FoxPro、Python、R等。
- stata怎么画分类图_Stata中的图形制作(绝对自己总结)
热门文章
- borders.GetItem()方法 获取斜线Border (VC在Excel中画斜线格)
- 已有a,b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号 升序排序
- 【Leetcode刷题Python】40. 组合总和 II
- 大疆精灵4多光谱无人机P4M影像辐射定标方法(三)
- ubuntu18.04安装caffe-cpu版
- 半导体初创企业中的RISC-V
- php ecos框架,GitHub - shopex/luban-desktop: A PHP Framework For Luban Web Artisans
- Normalized Discounted Cumulative Gain
- 接口自动化参数化(一)
- php地区代码吗,将国家/地区名称转换为国家/地区代码缩写php