【问题标题】:How to extract a variable length substring using ksh如何使用 ksh 提取可变长度子字符串
【发布时间】:2020-10-27 02:02:00
【问题描述】:

我需要在 Linux 上使用 Korn shell 提取可变长度的子字符串。

示例字符串:"SID_LIST_ORADBPOC1LSN ="

需要提取子串:"ORADBPOC1LSN"

注意:示例子字符串的长度可变。

提前致谢。

FR

【问题讨论】:

  • 假设您要删除SID_LIST(前缀)和尾随" =",您可以使用参数替换,即str="SID_LIST_ORADBPOC1LSN ="; varFix="${str#SID_LIST_}"; varFix=${varFix% =}; echo "$varFix"。输出为:ORADBPOC1LSN。祝你好运。
  • 您可能应该提供几个之前/之后值的示例,或者所有输入值的格式都相同(string) + '_' + (string) + '_' + (string) + (space) + '='

标签: shell substring ksh


【解决方案1】:

具有纯bash的参数扩展能力。

var="SID_LIST_ORADBPOC1LSN ="  ##Creating shell variable here.
temp1="${var##*_}"             ##Removing everything till _ ## for longest match here.
echo "${temp1/ =/}"            ##Substituting space = with null here.
ORADBPOC1LSN

我正在打印 temp1 的参数扩展值,您也可以根据需要将其保存到变量中。



或者,如果您想在单个 awk 中执行此操作,请尝试:

echo "$var" | awk -F'_| ' '{print $3}'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 2018-09-20
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    相关资源
    最近更新 更多