Macos 使用grep从文件中提取插件名称

Macos 使用grep从文件中提取插件名称,macos,terminal,grep,Macos,Terminal,Grep,在一个shell脚本中,我得到了WordPress插件文件的版本,其中有一行: VERSION=`grep "^Version" $PLUGIN | awk -F' ' '{print $2}' | tr -d '\r'` $VERSION包含文件中的版本号(例如2.1) 当我尝试获取名称时,问题似乎与空格字符有关: PLUGINNAME=`grep "^Plugin Name" $PLUGIN | awk -F' ' '{print $2}' | tr -d '\r'` $PLUGINNA

在一个shell脚本中,我得到了WordPress插件文件的版本,其中有一行:

VERSION=`grep "^Version" $PLUGIN | awk -F' ' '{print $2}' | tr -d '\r'`
$VERSION
包含文件中的版本号(例如2.1)

当我尝试获取名称时,问题似乎与空格字符有关:

PLUGINNAME=`grep "^Plugin Name" $PLUGIN | awk -F' ' '{print $2}' | tr -d '\r'`
$PLUGINNAME
包含
名称:
,但不包含插件

$PLUGIN
是插件文件的位置,例如
my PLUGIN/index.php

以下是此文件的内容(已删除):


您可以在
grep
中使用look-behind:

$ grep -Po '(?<=^Version: ).*' your_file.php
2.1
$ grep -Po '(?<=^Plugin Name: ).*' your_file.php
My Plugin Name
这将获取以
插件名称:
开头的行,并打印第二个字段,将字段视为
-分隔(
加空格)


要将值存储在变量中,只需使用
var=$(命令)
语法:

plugin_name=$(awk -F": " '/^Plugin Name:/ {print $2}' file)

我需要一个变量。你能更新答案吗?我总是收到“如何使用”的信息:((没有
-P
选项)我在mac上。`用法:grep[-abcdefghhiijllmnooqrsusuvwxz][a num][B num][C[num][-e pattern][f file][-binary files=value][-color=when][context[=num directories=action][-label][-line buffered][-null][pattern][文件…]`@revaxarts这是因为该grep版本中不允许使用
-P
。请尝试使用
awk-F:“/^Plugin Name:/{print$2}”文件
。谢谢您的时间!
awk -F": " '/^Plugin Name:/ {print $2}' file
plugin_name=$(awk -F": " '/^Plugin Name:/ {print $2}' file)