我正在尝试从不是 bash 脚本的文件中读取变量。文件内容大致如下:
thisthing (
# a comment
appid="myapp",
# comments
othervariable="something",
another=somethingelse,
option=["blah"],
)
到目前为止,我的解决方案是从该文件中提取变量值:
filename=~/Programming/myfile.ext
awk -F'appid' '{print $2}' $filename | awk -F'=' '{print $2}' | awk -F'"' '{print $2}' | xargs
我强调它不是 bash 脚本的原因是因为我读了很多很多很多类似的答案,他们告诉你“来源”文件。由于这不是 bash 脚本,因此这似乎不合逻辑。
我的问题是,是否可以用“awk”来简化,这样我就不会将其输出分开三次?或者这是完全可以接受的吗?
“xargs”是为了消除结果周围的大量空白。
您可以像这样简化您的
awk
命令:
$ awk -F= '{if ($1 == "appid") {gsub("[\",]","",$2); print $2}}' file
myapp
因此将字段分隔符设置为
=
,然后当第一个字段为 appid
时,获取第二个字段并删除字符 "
和 ,
。