从变量中提取文本

时间:2017-08-18 16:27:50

标签: linux bash

在bash脚本中,我有一个包含

的变量fete
{"feastedsaint": "eline,Helena,Helene,Heliena,Laetitia,Lena,Lenaic,Nelly"}

我想进入另一个变量这个文本

eline,Helena,Helene,Heliena,Laetitia,Lena,Lenaic,Nelly

如何使用Linux / bash命令执行此操作?

3 个答案:

答案 0 :(得分:1)

使用

Foo
var='{"feastedsaint": "eline,Helena,Helene,Heliena,Laetitia,Lena,Lenaic,Nelly"}'
names=$(jq -r .feastedsaint <<<"$var")
echo "$names"

jshon等价物将是

eline,Helena,Helene,Heliena,Laetitia,Lena,Lenaic,Nelly

答案 1 :(得分:0)

使用外部命令就像以下一样简单:

$var2 = $(echo ${var1}|cut -f4 -d\")

您也可以使用$ {var%“}和$ {var#”}(或%% / ##)

在没有外部命令的情况下执行此操作

答案 2 :(得分:0)

您可以使用grep&#34;环顾四周&#34;

newvar=$(echo "$fete" | grep -Po '(?<=: ").*(?="})')

或者更简单:

newvar=$(grep -Po '(?<=: ").*(?="})') <<< "$fete")

其中:

  • -P表示使用Perl regexes
  • -o表示仅打印匹配的部分
  • (?&lt; =:&#34;)表示查看冒号后跟空格和双引号
  • (?=&#34;})意味着展望双引号和右括号