shell字符串切成数组(shell脚本-如何将字符串分割成数组)
shell字符串切成数组(shell脚本-如何将字符串分割成数组)
2024-09-27 03:15:32  作者:南生忆  网址:https://m.xinb2b.cn/tech/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-09-27陈柏霖主演迪士尼首部华语爱情电影迪士尼首部华语爱情电影[假如王子睡着了]确认由林允、陈柏霖主演,一同出演的还有张云龙故事讲述孤女小禾因一枚钻戒而与两兄弟陷入爱情迷宫的故事▲林允饰演孤女小禾,早前演过人鱼公主的她表示:“这次不演公主”。
  • 月季花土壤消毒方法(月季花土壤怎样消毒)
  • 2024-09-27月季花土壤怎样消毒暴晒消毒:想要给花消毒,最简单的方法,就是放在太阳下暴晒了,特别是那些在野外挖来的土,土壤里都有很多小虫子,一定得杀毒后才能用将土壤放在太阳直射的地方,平摊成薄薄的一层,大概暴晒1周以上的时间,或是将。
  • 华为海思麒麟芯片(华为海思的麒麟芯片是如何崛起的)
  • 2024-09-27华为海思的麒麟芯片是如何崛起的作者:老兵戴辉日前,在集微网首发了《老兵戴辉:华为芯片事业是如何起家的?》从1991年开始,为了增加自家通信系统的竞争力,华为走上开发ASIC(专用芯片)之路但费尽心力搞出了这么好的芯片设计平台,光是。
  • 5分钟教你搞定汽车销售业(一起来学习一下汽车销售行业的)
  • 2024-09-27一起来学习一下汽车销售行业的【头条首发,原创文章,侵权必究】所谓“黑话”,其实就是汽车行业里的一些行话,这些行话也应用当中会言简意赅的表达一个意思,同时也是鉴定是否内行的参考标准当然更重要的一点是,有时候汽车销售说行话,客户是听。
  • 考研专业的代码是什么意思(考研专业的代码意思介绍)
  • 2024-09-27考研专业的代码意思介绍考研专业前面专业的代码,方便计算机和考生识别以及研究生招生管理具体详情如下:专业的代码专前2位是学科大类,即:01哲学、02经济学、03法学、04教育学、05文学、06历史学、07理学、08工学、09。
  • lasagna价格(意大利千层面Lasagna)
  • 2024-09-27意大利千层面Lasagna隔一阵子就会做一次的意大利千层面,娃儿的favoritefood‍【用料】9*13的玻璃大烤盘一个1磅chunk牛绞肉1个中等大洋葱切丁128-ounce罐装西红柿酱5-6瓣儿蒜切碎3ounces西红。
  • 酱肉小笼包的做法(酱肉包子的做法)
  • 2024-09-27酱肉包子的做法酵母加温水化开,加入面粉中,将面粉和成面团醒发2小时左右如果水不够,再用清温水猪腿肉洗净切成大块放入锅中煮20分钟左右捞出切成1厘米左右的小块锅中放油,油热后放入肉丁,炒至变色后加1勺料酒翻炒香葱切成。
  • 有翡海天一色和谢允有什么关系(有翡简介)
  • 2024-09-27有翡简介海天一色是有关改朝换代的密码,与谢允的身世有关系,曹仲昆篡位,永平帝驾崩东宫大火,懿德太子身亡,遗孤失踪(被老太监王公公保护逃亡)忠臣保下永平帝幼子吴费将军跟齐门通信,齐门联系其他江湖人相助梁绍制定“。
  • 脱发的人每天还长出来头发吗(正常人都会脱发)
  • 2024-09-27正常人都会脱发【脱发患者自述】最近洗澡后、梳头后,发现掉下了大量的头发我担心自己是不是已经到了脱发的年龄了,长此以往,会不会变成斑秃、谢顶?中医说脱发要补肾,是不是真的?有一次我有事找朋友,给她打电话打了几次都没打。
  • 即将到来的天象节目(2023年天象剧场节目单)
  • 2024-09-272023年天象剧场节目单今年的“超级月亮”出现在8月31日,并且8月2日和9月29日的两次满月距离地球也比较近9月29日正好是中秋佳节,当天17时58分,将有一轮又大又圆的月亮从东方升起恰逢农历兔年,玉兔望月别有一番意境1月。
  • 外国人问how are you怎么回答(只会用howare)
  • 2024-09-27只会用howare或许各位已经在用“hello”,或者“howareyou”来与别人打招呼,或者是问候但是外国人打招呼可不止只是用这些哦!他们还会使用其他问候语和其他表达方式来表达略有不同的意思今天学习了这篇文章,你也。