shell字符串切成数组(shell脚本-如何将字符串分割成数组)
shell字符串切成数组(shell脚本-如何将字符串分割成数组)
2024-11-22 03:21:22  作者:南生忆  网址:https://m.xinb2b.cn/sport/ien496796.html
前言

shell编程过程中,很多时候需要操作数组,而命令返回的一般都是字符串,如何将字符串根据指定的符号进行分割呢?


这里就需要有到一个变量IFS( Internal Field Separator,内部的域分隔符),IFS的默认值为:空白(包括:空格,tab, 和新行)

如果直接用 echo $IFS看不出来,可以将结果用ASSII码用十六进制打印出来:

echo -n "$IFS" | xxd -g 1

00000000: 20 09 0a ..

十六进制的20是32

十六进制的09是9

十六进制的0a是10

根据下面的图就可以看出来是哪个符号:


ASCII 10进制

分割字符串

如果要以默认的这三种符号进行分割,就不需要修改变量。

例子:

#!/bin/bash

a="one two three four"

array=($a)

for s in ${array[@]}

do

echo $s

done

执行结果:


如果是其他分割符,就需要修改这个变量。(修改的时候记得先保存一下变量,分割完就马上赋值回去,防止下面输出的格式变了)

例子:

#!/bin/bash

a="one,two,three,four"

OLD_IFS="$IFS"

IFS=","

array=($a)

IFS="$OLD_IFS"

for s in ${array[@]}

do

echo $s

done

执行结果:


array=($a)用于将字符串$a分割到数组$array ${array[0]} ${array[1]} ... 分别存储分割后的数组第1 2 ... 项 ,${arr[@]}存储整个数组。

IFS对空格的空白的处理和其他字符不一样,左右两边的纯空白会被忽略,多个连续的空白被当成一个IFS处理。

多个符号进行分割

#!/bin/bash

a="1,,,2::3"

OLD_IFS="$IFS"

IFS=",:"

array=($a)

IFS=OLD_IFS

for s in ${array[@]}

do

echo $s

done

执行结果:


总结

写shell脚本不好debug,很容易出错,可以使用bash -x scripts.sh 执行,来查看具体的执行步骤。shell脚本虽然方便,但是执行效率嘛。。。。。


  • 古代丫鬟陪嫁是什么规矩(古代陪嫁丫鬟除了伺候小姐)
  • 2024-11-22古代陪嫁丫鬟除了伺候小姐古代女子的地位一直都是非常卑微的,他们在社会上能够从事的工作也很少,不少平民家的女子为了生活只能去做达官显贵家里的丫鬟不过古代的丫鬟可没有我们想象的那么简单,她们不仅仅是老爷家的奴仆,还是老爷家里的私。
  • 迪迦奥特曼的四种形态有哪一种(形态最多的奥特曼是谁)
  • 2024-11-22形态最多的奥特曼是谁圆谷为了制作更多的玩具,很喜欢让现在的奥特曼获得新形态,那么形态最多的奥特曼又是谁呢?迪迦9种排在第三位,赛罗12种只能排在第二位,而排在第一位的大家可能都意想不到其实大家都知道,从迪迦奥特曼开始,新。
  • 口碑只能评论一次吗(你看到的口碑都是刷出来的)
  • 2024-11-22你看到的口碑都是刷出来的图片来源@视觉中国文|深燃,作者|邹帅唐亚华,编辑|黎明一年一度的央视3·15之锤再度落下其中,伪造口碑问答、篡改报道标题、操纵搜索结果、抹除负面报道的口碑营销,一经曝光就引发网友热议具体来说,有第三。
  • 合肥国家森林公园开放了吗(安徽万亩城市森林公园)
  • 2024-11-22安徽万亩城市森林公园文/用笔尖书写旅行(原创文章,欢迎个人转载分享)旅行并非只有起点和终点才有意义,旅途本身就一份享受对于合肥这一地方,我相信有很多喜欢看经济类文章的朋友们都有一定的了解,曾经的这里可以说是一个笑柄作为一。
  • 破碎之墟攻略(怎么打破碎之墟)
  • 2024-11-22怎么打破碎之墟打开剑与远征后,在时光之巅中,选择破碎之墟的关卡点击后,选择开启冒险的选项,进入挑战进入之后,该关卡需要两次挑战才可以拿到奖励首先,挑战绿色的机关在挑战时,可以通过机关的颜色来判断线路,避免挑战错误每。
  • 罗盘必背100句口诀(入地眼全书)
  • 2024-11-22入地眼全书改良《入地眼全书》入地眼全书同里茂才万君仁村,好学士也自失怙后,为买山计,读《礼》之暇,究心地理,本之形势以立其体,参之河洛以妙其用,非寻常言青乌者所能逮庚辰,余乞假南旋为先大夫卜吉延至家甫一岁,以丁。
  • 关联词填空最佳答案(逻辑填空中的关联词需注意)
  • 2024-11-22逻辑填空中的关联词需注意关联词,既可以体现出作者表达的侧重,也可以体现出前后分句的不同关系因此,在言语科目中,关联词几乎是一个贯穿于言语所有题型的知识点在言语科目中题量最大的逻辑填空中,关联词同样有着重要的作用,如果能够抓准。
  • 芝麻酱的质量(芝麻酱不管哪个牌子)
  • 2024-11-22芝麻酱不管哪个牌子芝麻酱是日常生活中的调味品之一,它是把炒熟的芝麻通过层层工序做出来,形成稀稠均匀的调味品,因为它做工精细,色泽金黄,更难得的口感细滑,口味醇香因此我们北方火锅和它可是标配,也因此芝麻酱又称北酱,芝麻酱。