【问题标题】:How to extract a value within single quotes from a string?如何从字符串中提取单引号内的值?
【发布时间】:2017-01-05 23:10:47
【问题描述】:

我正在尝试从字符串中获取value

define('__mypassword', 'value');

我正在尝试为此使用cutgrep

grep "__mypassword'" myfile.php | cut -d ',' -f 2

这会返回'value');

我不需要引号、大括号或半列。如何在不使用多个 cut 语句的情况下取出值?

【问题讨论】:

    标签: bash grep cut


    【解决方案1】:

    请使用awk

    $ awk -F"'" '/__mypassword/{print $4}' <<< "define('__mypassword', 'value');"
    value
    

    这会将字段分隔符设置为单引号。这样,只需打印第 4 个元素,即第 3 个引号之后的元素。 /__mypassword/ 充当grep "__mypassword"

    如果您还需要匹配单引号,请使用/__mypassword'\''/(有点挑剔,您需要关闭awk 语句以包含单引号)。

    【讨论】:

      【解决方案2】:

      不计逗号,计单引号:

      grep "__mypassword'" myfile.php | cut -d"'" -f4
      

      【讨论】:

        【解决方案3】:
        kent$  grep -oP "[^']+(?='\))" <<<"define('__mypassword', 'value');"
        value
        

        【讨论】:

          猜你喜欢
          • 2018-12-10
          • 2015-09-14
          • 2022-12-18
          • 1970-01-01
          • 1970-01-01
          • 2012-07-07
          • 1970-01-01
          • 2013-10-27
          • 2016-12-08
          相关资源
          最近更新 更多