【发布时间】:2017-01-05 23:10:47
【问题描述】:
我正在尝试从字符串中获取value:
define('__mypassword', 'value');
我正在尝试为此使用cut 和grep。
grep "__mypassword'" myfile.php | cut -d ',' -f 2
这会返回'value');
我不需要引号、大括号或半列。如何在不使用多个 cut 语句的情况下取出值?
【问题讨论】:
我正在尝试从字符串中获取value:
define('__mypassword', 'value');
我正在尝试为此使用cut 和grep。
grep "__mypassword'" myfile.php | cut -d ',' -f 2
这会返回'value');
我不需要引号、大括号或半列。如何在不使用多个 cut 语句的情况下取出值?
【问题讨论】:
请使用awk!
$ awk -F"'" '/__mypassword/{print $4}' <<< "define('__mypassword', 'value');"
value
这会将字段分隔符设置为单引号。这样,只需打印第 4 个元素,即第 3 个引号之后的元素。 /__mypassword/ 充当grep "__mypassword"。
如果您还需要匹配单引号,请使用/__mypassword'\''/(有点挑剔,您需要关闭awk 语句以包含单引号)。
【讨论】:
不计逗号,计单引号:
grep "__mypassword'" myfile.php | cut -d"'" -f4
【讨论】:
kent$ grep -oP "[^']+(?='\))" <<<"define('__mypassword', 'value');"
value
【讨论】: