linux shell脚本字符串 字段分隔符 存入数组 根据下标取值

简介: linux shell脚本字符串 字段分隔符 存入数组 根据下标取值

字段分隔 逗号分隔

[root@oracle low]# cat test1.sh 
#!/bin/bash

txt='123,456,789'
   ifs_old=$IFS
   IFS=$','
   for i in $(echo "${txt}")
   do
   echo "${i}"
   done
[root@oracle low]# bash test1.sh 
123
456
789
[root@oracle low]# 

放入数组根据下标取值

[root@oracle low]# cat test1.sh 
#!/bin/bash

txt='123,456,789'
   ifs_old=$IFS
   IFS=$','
         arr=($txt)
      #根据数组下标取值
        echo "这是下标为0的:${arr[0]}"
        echo "这是下标为1的:${arr[1]}"
        echo "这是下标为2的:${arr[2]}"
     

[root@oracle low]# bash test1.sh 
这是下标为0的:123
这是下标为1的:456
这是下标为2的:789

进阶:

#!/bin/bash
#循环读文件
for line in `cat ./FilePath`
do
        #要将$a分割开,先存储旧的分隔符
        OLD_IFS="$line"
        #设置分隔符
        IFS="," 
        #如下会自动分隔 加入数组
        arr=($line)
        #根据数组下标判断文件是否存在
        if [[ ! -f /data/www/flowbilling/${arr[0]} ]];then
                #不存在则记录日志  更改路径为从服务器存放路径  后期手动更改文件名 chwj变量 改为 chfile变量
                echo "/home/www/123t/123/${arr[0]},${arr[1]},${arr[2]},${arr[3]}" >> 123.txt
        #如果文件路径存在,将其放入新路径
        else 
                mkdir /data/www/flowbilling/123/${arr[1]}/${arr[2]}/${arr[3]}/${arr[0]%/*} -p
                #复制原文件 到新目录下
                cp /data/www/flowbilling/${arr[0]} /data/www/flowbilling/123/${arr[1]}/${arr[2]}/${arr[3]}/${arr[0]}
        fi
done

目录
相关文章
|
12月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
978 9
|
12月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
1019 2
|
12月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
Java Shell 开发工具
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量(二)
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量
310 0
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量(二)
|
Shell
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量(一)
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量
467 0
【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量(一)
|
Shell
Shell数组变量定义-获取-拼接-删除
Shell数组变量定义-获取-拼接-删除
325 0
|
网络协议 Shell 应用服务中间件
shell脚本中实现数组变量
shell 数组变量 普通数组:只能使用整数作为数组索引 关联数组:可以使用字符串作为数组索引 数组变量和普通变量的区别:最明显的曲边就是普通变量一次只能设置一个变量值,而数组可以有多个值,例如普通变量(ip=192.168.81.210),数组变量(ip=(192.168.81.210 192.168.81.220)),普通变量是按一个字符当做一个索引位,而数组变量是一个字符串作为一个变量,另外普通变量的索引位都是整数,从0开始,而数组变量可以是整数也可以是字符串,这就要说到关联数组,例如(info=([name]tianyun [sex]male))
671 0
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
449 60