Macos 使用grep从文件中提取插件名称
在一个shell脚本中,我得到了WordPress插件文件的版本,其中有一行: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
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)