shell基础知识7-字段分隔符与迭代器
什么是内部字段分隔符
内部字段分隔符(Internal Field Separator,IFS)是shell脚本编程中的一个重要概念。在处理
文本数据时,它的作用可不小。
作为分隔符,IFS有其特殊用途。它是一个环境变量,其中保存了用于分隔的字符。它是当
前shell环境使用的默认定界字符串。我们可以查看$IFS这个变量,从而看出这个分隔符。
[root@dns-node2 tmp]# echo $IFS
更换分隔符从而切分字符串
考虑一种情形:我们需要迭代一个字符串或逗号分隔型数值(Comma Separated Value,CSV)
中的单词。如果是前者,可以使用 IFS=" " ;如果是后者,则使用 IFS="," 。
[root@dns-node2 tmp]# cat testIFS.sh
#!/bin/bash
data="name,age,sex,telphone_number,location"
oldIFS=$IFS
IFS=,
for i in $data
do
echo item: $i
done
IFS=$oldIFS
[root@dns-node2 tmp]# sh testIFS.sh
item: name
item: age
item: sex
item: telphone_number
item: location
以上就是没有使用awk来做指定分隔符,直接更改IFS来切分字符串,厉害吧。
接下来看看下面下面例子:
[root@dns-node2 tmp]# cat testIFS2.sh
#!/bin/bash
line="root:x:0:0:root:/root:/bin/bash"
IFS=":"
for i in $line
do
echo $i
done
[root@dns-node2 tmp]# bash testIFS2.sh
root
x
0
0
root
/root
/bin/bash
tips
可以使用echo 来输出序列,例如下面的数据:
[root@dns-node2 tmp]# echo {1..500}
[root@dns-node2 tmp]# echo {a..z}
[root@dns-node2 tmp]# echo {A..z}
shell基础知识7-字段分隔符与迭代器的更多相关文章
- Linux Shell 基础知识(一)
1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
- shell基础知识
Shell 学习基础 1.组合命令的符号 管道,将前面一个命令的结果作为后面一个命令的输入 分号,顺序执行用分号分割的命令 重定向,重定向包括三种:输入重定向.输出重定向.错误重定向,以7个不同的符号 ...
- Shell 基础知识和总结
调试脚本 检查脚本语法错误 bash -n /path/to/some_script 调试执行 bash -x /path/to/some_script shell里的变量 本地变量:只对当前shel ...
- shell基础知识总结
1. shell 对于一台计算机而言,其硬件受系统内核的控制,使用者想要控制计算机,就必须有与系统内核进行通讯的手段.而shell就是使用者与计算机进行通讯的手段之一.从命名上看,shell其实是相对 ...
- shell基础知识---与监听服务器长连接端口状态
从未写过脚本我的最近接了俩脚本的需求,就在这分享一下我的我学到基础知识主要就四部分内容 一.变量 变量的定义 string='字符串' string="字符串" num=808st ...
- shell基础知识讲解
第1章 shell基础 1.1 什么叫做shell编程 shell编程也叫做bash高级编程语法 1.2 常见的shell命令解释器 bash redhat和centos使用 d ...
- shell基础知识5-函数
函数的定义 function fname(){ } 或者 function_name(){ } 对于简单的函数,甚至可以是这样做 fname() { statement; } 函数调用 直接写函数名即 ...
- shell从入门到精通进阶之一:Shell基础知识
1.1 简介 Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户. 下面是处 ...
随机推荐
- php迭代器模式(iterator pattern)
... <?php /* The iterator pattern is used to traverse a container and access its elements. In oth ...
- Controller的激活(1)
Public interface IController { void Execute(RequestContext requestContext) } Public abstract Class C ...
- 命令式&函数式:把大象关进冰箱里问题
面向过程:把大象关进冰箱里: 把冰箱门打开=> 大象放冰箱里=> 冰箱门关上 面向对象: 冰箱.开门() 冰箱.放入(大象) 冰箱.关门() 函数式: 关进(冰箱,大象): 关门(放入(开 ...
- C++的map用法
图,自动建立表示关键字和键值(key - value)之间的对应关系,两者可以是任何数据类型,key唯一并且自动排序,value不唯一. 1.头文件#include<map> 2.map& ...
- linux修改镜像
修改为163yum源-mirrors.163.com 1.首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo [root@localhost ~]# m ...
- jQuery--data()方法
data() 函数用于在当前jQuery对象所匹配的所有元素上存取数据. 通过data()函数存取的数据都是临时数据,一旦页面刷新,之前存放的数据都将不复存在. 该函数属于jQuery对象(实例).如 ...
- 做个小插件(打开Part路径插件)
1 (CAIDAN.men) VERSION EDIT UG_GATEWAY_MAIN_MENUBAR AFTER UG_HELP CASCADE_BUTTON TOOLS LABEL 工具 END_ ...
- python函数 | 匿名函数lambda
匿名函数:lambda 表达式.普通函数有且只有返回值的函数才能用匿名函数进行简化成一行函数. 匿名函数不单独使用,一般和内置函数结合使用.内置函数中,可加入函数的有min.max.sorted.ma ...
- (转载)如何在当前目录下快速打开cmd
很多时候我们需要打开命令行然后进入到相应目录进行一些操作. 常规的做法是: Win+R打开运行窗口 输入"cmd"回车打开命令行窗口 假如我们要进入的是D盘foo文件夹下的一个ba ...
- Fluent的summary功能
在Fluent计算当中,出现错误,大家经常在求助的时候问得很笼统和宽泛,这里介绍一下Fluent的summary功能,大家可以在求助的时候附上生成的文件,这样更加便于别人帮助你发现问题 然后在算例目录 ...