我有一些字符串,并且想要在冒号“:”上分割,分配变量的名称来自左侧部分,值来自右侧部分。例如:
echo "Title: Some title" | sed 's/:.*//'
给我想要的变量名称“Title”,并且:
echo "Title: Some title" | sed 's/.*: //'
给我值“一些标题”。
我的问题是如何通过上述命令的输出分配名为“Title”的变量。
我可以分配值,$(echo "Title: Some title" | sed 's/.*: //)
但找不到如何分配名称
答案1
这是一件相当奇怪的事情,但我想你可以构造一个export
声明:
$ export $(echo "Title: Some title" | sed 's/:.*//')="$(echo "Title: Some title" | sed 's/.*: //')"
$ echo $Title
Some title
答案2
答案3
也许这会给出预期的结果
#!/bin/sh
export Variablename="$(echo "Title: Some title" | awk -F':' '{ print $1}')=\"$(echo "Title: Some title" | awk -F':' '{ print $2 }' | sed -e 's/^[[:blank:]]*//g')\""
输出 :
标题=“一些标题”