首页 > 系统相关 >Shell中如何分割字符串

Shell中如何分割字符串

时间:2023-09-21 22:34:55浏览次数:39  
标签:分割 Shell python echo go 字符串 js rust

使用字符替换来分割字符串

tr 或者 类似实现字符串替换的工具,如 sed。

echo "go:python:rust:js" | tr ":" "\n" # 使用 tr 将分隔符 : 替换成换行符 \n

使用 tr 将分隔符 : 替换成换行符 \n。

使用 cut 分割字符串

echo "go:python:rust:js" | cut -d ":" -f 1
echo "go:python:rust:js" | cut -d ":" -f 2
echo "go:python:rust:js" | cut -d ":" -f 3
echo "go:python:rust:js" | cut -d ":" -f 4

使用 cut 对输入字符串进行切割。如上所述,它有比较明显的缺点,需要指定哪一个列,如果输入多列,那么需要多次执行命令。不过,当字符串很短的情况下,这些差异可以忽略。

使用 awk 分割字符串

echo "go:python:rust:js" | awk -F":" 'BEGIN {OFS="\n"} {$1=$1} {print $0}'
# 或者
echo "go:python:rust:js" | awk 'BEGIN {FS=":"; OFS="\n"} {$1=$1; print $0}'

使用 awk 处理输入字符串,通过指定输入列分隔符( FS=":" )、与输出列分隔符(OFS="\n")来实现。特别需要指出,在上面的示例脚本中,{$1=$1} 是必要的,它告诉 awk 强行重新格式化行数据,不然不会有什么效果。

使用 IFS 环境变量

IFS,全称为 Internal Field Separator。

#!/bin/bash
IFS=":" read -ra aaa <<< "go:python:rust:js"
echo "${aaa[0]}, ${aaa[1]}, ${aaa[2]} ,${aaa[3]}"
echo "${aaa[@]}"

本例,使用 read 命令工具读入字符串,通过 shell 环境变量 IFS 来指定列分隔符,并将分割的各位列值赋给一个数组变量。通过操作数据,可以获得所要列的值。

参考

在 shell 中如何分割字符串与合并多行文本

标签:分割,Shell,python,echo,go,字符串,js,rust
From: https://www.cnblogs.com/strongmore/p/17675359.html

相关文章

  • xshell终端中文显示乱码
    1.原因:xshell本地编码与远程服务器编码不一致,两边编码保持一致即可。2.处理方式:2.1调整本地编码(推荐)   通过命令 locale 查看服务器编码,LANG即为服务器编码。    在xshell中打开文件-属性-终端-编码,设置与服务器编码一致即可:   2.1调整服务器端编码......
  • shell批量执行命令与文件传输脚本
    shell批量执行命令与文件传输脚本需求:对未进行主机信任操作的服务器进行批量操作实现:由于ssh只能在交互模式中输入服务器密码进行登录登操作,不便于进行大批量服务器进行巡检或日志采集。sshpass恰好又解决了这个问题,使用ssh-ppasswd可以实现命令行输入密码操作,便于进行规模......
  • 2、字符串操作(9题)--(2) HJ20.密码验证合格程序
       ......
  • 反序列化进阶--字符串逃逸
    有过一个类题,其实就在moectf2023里的夺命十三枪,我也写过一个wp;先来看看session的相关知识,这篇文章写的也很好,并且这次的反序列化没有php类,而是session形式,所以待会有些session知识我们也要用到。https://blog.csdn.net/masterft/article/details/1640122 wp部分来自:https://......
  • shell函数
    shell函数shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能。1.函数的定义函数名(){函数体(一堆命令的集合,来实现某个功能)}function函数名(){函数体(一堆命令的集合,来实现......
  • JS 对象(Object)和字符串(String)互转
    利用原生JSON对象,将对象转为字符串1.varjsObj={};2.jsObj.testArray=[1,2,3,4,5];3.jsObj.name='CSS3';4.jsObj.date='8May,2011';5.varstr=JSON.stringify(jsObj);6.alert(str);从JSON字符串转为对象1.varjsObj={};2.jsObj.......
  • How to print a string with a variable by using the echo command in the shell scr
    HowtoprintastringwithavariablebyusingtheechocommandintheshellscriptAllInOneNode.js&nvmquestionIdefinedashellvariableintheterminalandthenusedtheechocommandtooutputastringwiththatvariableanditworkedfine......
  • Java字符串转换为日期和时间比较大小
    方法一:DateFormatfmt=newSimpleDateFormat("yyyy-MM-dd");StringdateBegin=fmt.format(carrierCommand.getDateBegin());StringdateEnd=fmt.format(carrierCommand.getDateEnd());//如果获得的日期格式不是'2008-05-22',就必须要格式化一下日期StringdateBegin=......
  • SHELL编程开发:如何轻松一键部署Nginx脚本
    实现思路下载Nginx源码包解压源码包进入解压后的目录配置编译选项编译并安装Nginx启动Nginx服务代码实现以下是脚本内容及注释:#!/bin/bash#一键部署Nginx脚本#下载Nginx源码包wgethttp://nginx.org/download/nginx-1.20.1.tar.gz#解压源码包tar-zxvfnginx-1.20.1.tar.......
  • 基于Unet+opencv实现天空对象的分割、替换和美化
      传统图像处理算法进行“天空分割”存在精度问题且调参复杂,无法很好地应对云雾、阴霾等情况;本篇文章分享的“基于Unet+opencv实现天空对象的分割、替换和美化”,较好地解决了该问题,包括以下内容:1、基于Unet语义分割的基本原理、环境构建、参数调节等2、一种有效的天空分割数......