我想从 package.json 中 grep 名称。我的文件如下所示。名称位于文件的第二行。
{
"name": "Proje",
"version": "1.0.0",
输出应该只是Proje
答案1
假设输入文件正是所示的格式;纯的POSIXshell,没有外部实用程序:
while read a b ; do
[ "$a" = '"name":' ] && { b="${b%\"*}" ; echo "${b#\"}" ; break ; }
done < package.json
输出:
Proje
答案2
该行将提取 name 的字符串值package.json
cat package.json | grep "name" | cut -d':' -f 2 | cut -d'"' -f 2
例子:
Hello-Kittys-MBP app-build % cat package.json | grep "name"
"name": "@itential/app-build",
Hello-Kittys-MBP app-build % cat package.json | grep "name" | cut -d'"' -f 4
@itential/app-build
答案3
我使用以下命令访问 package.json 文件并提取名称和版本。一切都在努力,非常感谢您的支持。
grep -ri "name" package.json |head -n 1 | cut -c 12-16
cat package.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[ ",]//g'
node -p "require('./package.json').name"
while read a b ; do
[ "$a" = '"name":' ] && { b="${b%\"*}" ; echo "${b#\"}" ; break ; }
done < package.json
jq -r '.name' package.json