【问题标题】:sed token from : delimited stringsed 标记来自:分隔字符串
【发布时间】:2010-12-02 06:40:13
【问题描述】:

我尝试寻找答案,但在问题中迷失了方向。基本上我有一个shell脚本如下:

#!/bin/ksh

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

processInfo $1

此时processInfo返回一个格式的字符串: 参数1:参数2:参数3:参数4:参数5

我想将 param4 捕获到一个变量中。 前任: param4=processInfo $1 | sed regex

使用 sed 和正则表达式似乎很简单,但我只是忘记了它。请帮忙

【问题讨论】:

    标签: regex shell sed token


    【解决方案1】:
    param4=$(processInfo $1 | awk -F: '{print $4}')
    

    【讨论】:

      【解决方案2】:
      param4=$( processInfo "$1" | cut -d':' -f 4 )
      

      【讨论】:

      • 后来发现这比awk轻多了!谢谢
      【解决方案3】:
      saveIFS=$IFS
      IFS=:
      array=($(processInfo $1))
      IFS=$saveIFS
      echo ${array[3]}
      

      【讨论】:

        【解决方案4】:

        如果您不需要保留脚本的位置参数:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-08-16
          • 1970-01-01
          • 1970-01-01
          • 2010-10-14
          • 1970-01-01
          • 1970-01-01
          • 2015-03-14
          相关资源
          最近更新 更多