【问题标题】:How would I split the following string in bash我将如何在 bash 中拆分以下字符串
【发布时间】:2011-12-17 23:11:33
【问题描述】:

假设我们有一个表单的字符串

first;second;third;fourth

我想打印

second;third;fourth

我该怎么做?

【问题讨论】:

  • 那个字符串是从哪里来的?它是否存储在变量中?

标签: string bash split


【解决方案1】:

阅读您的要求,如果您想打印第一个分号后的所有内容,我会使用 POSIX 标准 expr 实用程序。

expr "first;second;third;fourth" : '[^;]*;\(.*\)'

【讨论】:

  • @ennuikiller:你说的神秘是什么意思?这是我当时能想到的最便携的解决方案。
【解决方案2】:

使用参数替换(匹配开头;删除最短部分):

str="first;second;third;fourth"

echo "${str#*;}"

【讨论】:

    【解决方案3】:
    $ v="第一;第二;第三;第四" $ 回声 ${v#first;} 第二;第三;第四 $q=${v#*;} $回声$q

    【讨论】:

      【解决方案4】:

      cut 命令可以很好地解决问题:

      echo "first;second;third;forth" | cut -d';' -f2-
      

      【讨论】:

        【解决方案5】:
        echo "first;second;thrid;fourth" | awk -F";" '{print substr($0,index($0,$2))}'
        

        很多这些答案都有效,我认为cut 可能是最好的解决方案,但这是一个缓慢的夜晚,所以我添加了另一个,将字段 2 打印到行尾。

        然而,它与另一个问题非常相似:

        Print Field 'N' to End of Line

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-11
          • 2013-01-15
          • 1970-01-01
          • 2020-06-20
          • 1970-01-01
          • 2010-10-29
          • 1970-01-01
          相关资源
          最近更新 更多