文档章节

shell 将字符串分割成数组

wulei163
 wulei163
发布于 2014/01/02 15:15
字数 194
阅读 6622
收藏 6

shell编程中,经常需要将由特定分割符分割的字符串分割成数组,多数情况下我们首先会想到使用awk 
但是实际上用shell自带的分割数组功能会更方便。假如 

a="one,two,three,four"

要将$a分割开,可以这样: 

OLD_IFS="$IFS" 
IFS="," 
arr=($a) 
IFS="$OLD_IFS" 
for s in ${arr[@]} 
do 
    echo "$s" 
done

上述代码会输出 

one 
two 
three 
four

arr=($a)用于将字符串$a分割到数组$arr ${arr[0]} ${arr[1]} ... 分别存储分割后的数组第1 2 ... 项 ,${arr[@]}存储整个数组。变量$IFS存储着分隔符,这里我们将其设为逗号 "," OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。

本文转载自:

共有 人打赏支持
wulei163
粉丝 8
博文 48
码字总数 8231
作品 0
郑州
程序员
加载中

评论(1)

张师傅
张师傅
涨姿势了
php中implode()和explode()的应用

php可以将字符串分割成数组,同时反过了也可以将数组连接成字符串。 implode() 连接函数,该函数实现将数组元素连接成字符串,它们的两个参数分别是连接符和被连接的数组。 例子: 结果: ex...

京牛教育科技
2016/08/26
16
1
Shell脚本入门-2

(一)定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名...

Avner
03/06
7
0
Hadoop Streaming和awk

Hadoop streaming类似于Unix管道数据流,从标准输入(STDIN)输入,输出到标准输出(STDOUT),数据必须是基于文本的,文本的每一行被认为是一条记录。这也是很多Unix命令,例如:awk的工作方式。...

jhonephone
2014/09/10
0
0
hive 中 统计某字段json数组中每个value出现的次数

有这样一个json串 需要将json数组里的qd_title都提取出来转换成hive中的array数组。下面介绍两种方法 法一getjsonobject+正则 1.首先可以使用函数,提取出数组,但是这个返回的是一个字符串 ...

Meet相识_bfa5
05/24
0
0
shell编程—注释、字符串和数组(四)

shell注释   以#作为注释符号   shell中没有多行注释,只能一行加一个#号 字符串操作   1、拼接字符串        2、获取字符串长度     string=“khjf”     echo ${#str...

Tynam.Yang
08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL SQL 常见用法

某字段重复记录 select a.fieldA from tableA a group by a.fieldA having count(a.fieldA)>1;==select * from (select a.fieldA, count(1) as faCount from tableA a group......

园领T
12分钟前
0
0
如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则

以下是如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则。 防火墙 防火墙是一组规则。当数据包进出受保护的网络区域时,进出内容(特别是关于其来源、目标和使用的协议等信息)会...

linuxprobe16
36分钟前
0
0
发生系统错误 5 拒绝访问

1、使用命令net start *开启一个服务的时候,出现发生系统错误5,拒绝访问。 解决:切换到管理员模式执行此命令即可。

fang_faye
44分钟前
1
0
devops 成长路线

https://36kr.com/p/5157249.html

swingcoder
56分钟前
1
0
Java内存区域的划分和异常

行时数据区域 JVM在运行Java程序时候会将内存划分为若干个不同的数据区域。 程序计数器 线程私有。可看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作是通过改变这个计数值来读...

架构师springboot
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部