IFS是internal field separator的缩写,shell的特殊环境变量。ksh根据IFS存储的值,可以是空格、tab、换行符或者其他自定义符号,来解析输入和输出的变量值。

用IFS定制分隔符的方式范例

IFS='|'
text='a a a a|b b b b|c c c c'
for i in $text;do echo "i=$i";done

IP地址倒序

如果有一IP地址220.112.253.111, 欲将这个IP地址颠倒顺序,你可以定义IFS为".",然后直接echo这个地址即可得到此IP的4个数值,然后重新把IFS设为空格,重新组合四个IP>地址的数值即可。

# The following code segment will only work in ksh,
# and it will fail in bash
IP=220.112.253.111
IFS="."
TMPIP=$(echo $IP)
IFS=" " # space
echo $TMPIP | read ip1 ip2 ip3 ip4
INVERT_IP=$ip4.$ip3.$ip2.$ip1

使用换行符做分隔符

IFS=$'\n'

#!/bin/shconf="ABC
A B C
1|2|3
1 2 3"
echo "$conf"echo --------------
echo IFS:
echo -n "$IFS"|xxd
echo --------------
for c in $conf;doecho "line='$c'";
doneecho --------------
#IFS=$'\n'  表示用 换行符 做分隔
#IFS="\n" 与 IFS='\n'  都是用 n 字符作为分隔
IFS=$'\n'
echo IFS:
echo -n "$IFS"|xxd
echo --------------
for c in $conf;doecho "line='$c'";
done

输出:

ABC
A B C
1|2|3
1 2 3
--------------
IFS:
00000000: 2d6e 2020 090a 0a                        -n  ...
--------------
line='ABC'
line='A'
line='B'
line='C'
line='1|2|3'
line='1'
line='2'
line='3'
--------------
IFS:
00000000: 2d6e 200a 0a                             -n ..
--------------
line='ABC'
line='A B C'
line='1|2|3'
line='1 2 3'

linux shell IFS分隔符 简介 IFS=$‘\n‘ 使用换行符做分隔符相关推荐

  1. linux shell grep 搜索数据 赋值变量 没有换行符

    问题: 用grep写shell的时候,发现一个很奇怪的问题,当我用命令grep搜索数据时,返回的多行数据时是按每行显示的,但是当我在shell里把这个搜索命令赋值到变量后,输出这个变量,就变成一行输出 ...

  2. linux shell ifs,shell - IFS分隔符

    IFS是internal field separator的缩写,shell的特殊环境变量.ksh根据IFS存储的值,可以是空格.tab.换行符或者其他自定义符号,来解析输入和输出的变量值. 用IFS定 ...

  3. 【Linux】文件的编码语系转换与换行符转换

    1.编码语系转换 编码是信息从一种形式转换成另一种形式的过程,有一定的编码格式.规则,那么在解码时,如果格式有误,就会出现常见的乱码现象.常见的中文编码语系有gb2312.big5.gbk.utf8等 ...

  4. linux shell ifs,【shell】IFS和$*变量

    Shell脚本中有个变量叫 IFS(Internal Field Seprator),内部域分隔符. 完整定义: The shell uses the value stored in IFS, whi ...

  5. Windows、Linux和MAC的CR, LF, CR/LF换行符

    在文本处理中, CR, LF, CR/LF是不同操作系统上使用的换行符. Dos和windows: 采用回车+换行CR/LF表示下一行.  UNIX/Linux  : 采用换行符LF表示下一行.  M ...

  6. linux shell ifs,Shell 的 IFS 变量

    今天把一个 shell script 从 Linux 移植到 Solaris 时遇到一些小问题: args=`tail -n 1 $file | head -1` tail 的用法有点不一样.Sola ...

  7. linux shell find 命令简介

    find命令格式: find   path  -option  [ -print ]  [ -exec   -ok   |xargs  |grep  ] [  command  {} \;  ] fi ...

  8. linux shell install 命令简介

    用法:install [选项]... [-T] 源文件 目标文件 或:install [选项]... 源文件... 目录 或:install [选项]... -t 目录 源文件... 或:instal ...

  9. IDEA批量替换文件换行符、分隔符CRLF、LF、CR

    全局设置(只对新文件有效) file–>setting–>code style–>Line separator,选中需要替换的分隔符类型 注意: Line separator下面有行 ...

最新文章

  1. LazyT 延迟加载
  2. cmd命令运行jar包
  3. CentOS7 Ambari2.7.5编译
  4. 第四范式完成超10亿元C轮融资,估值12亿美元
  5. Spring MVC开发初体验
  6. python快速排序函数_两种方法在Python中实现快速排序
  7. 有哪些值得推荐的 Java 练手项目?
  8. 关于PLSQL的破解,按图输入即可
  9. Web安全攻防渗透测试
  10. win10易升_win10性能模式是什么?怎么开启?
  11. 物联网毕业设计 - 物联网毕设项目分享 有趣的毕设项目(单片机 嵌入式 物联网 stm32)
  12. 使用代理后,雷鸟连接qq邮箱
  13. 计算机有多种技术指标其主频是,计算机有多种技术指标,其中主频是指( )。
  14. linux服务器如何迁移,linux – 服务器迁移:最有效的方式
  15. 群晖Docker 安装Jellyfin提示“操作超时解决方法
  16. 网易2018编程题之游历魔法王国
  17. (翻译)如何提示用户密码已变更
  18. 理解回忆 李烨的机器学习
  19. PHP+MySQL实现上传图片的显示
  20. 阿里巴巴与UPS结成战略联盟

热门文章

  1. FaaS — Serverless — 实现原理
  2. C 语言编程 — 数据类型的别名
  3. NanoPi NEO Air使用二:固件烧录
  4. mstsc连接远程桌面如何挂载本地磁盘
  5. CentOS 7.0下使用yum安装MySQL
  6. ElasticSearch 组合过滤器
  7. Windows server 2008 处理多用户在登陆时显示问题
  8. Linux基础命令(3)
  9. 在Eclipse中导入Tiny工程,有下面的错误,是什么原因?
  10. Go语言 goroutine