简体   繁体   English

sed令牌来自:分隔字符串

[英]sed token from : delimited string

I tried searching for an answer but lost in questions. 我试图寻找答案,但迷惑了。 Basically I have a shell script as follows: 基本上我有一个shell脚本,如下所示:

#!/bin/ksh

if [ $# -eq 1 ]; then
    exit -1
fi 

processInfo $1

At this point, processInfo returns a string of format: param1:param2:param3:param4:param5 此时,processInfo返回以下格式的字符串:param1:param2:param3:param4:param5

I want to capture param4 into a variable. 我想将param4捕获到一个变量中。 ex: param4= processInfo $1 | sed regex 例如:param4 = processInfo $1 | sed regex processInfo $1 | sed regex

It seems to be simple with sed and regex but I just lost track of it. 使用sed和regex似乎很简单,但我只是对此一无所知。 Pls help 请帮助

param4=$(processInfo $1 | awk -F: '{print $4}')
param4=$( processInfo "$1" | cut -d':' -f 4 )
saveIFS=$IFS
IFS=:
array=($(processInfo $1))
IFS=$saveIFS
echo ${array[3]}

If you don't need to keep your script's positional parameters: 如果不需要保留脚本的位置参数:

IFS=:
set -- $( processInfo "$1" )
param4="$4"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM