这个awk命令如何简化?

问题描述 投票:0回答:1

我正在尝试从不是 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”是为了消除结果周围的大量空白。

string bash parsing awk
1个回答
0
投票

您可以像这样简化您的

awk
命令:

$ awk -F= '{if ($1 == "appid") {gsub("[\",]","",$2); print $2}}' file
myapp

因此将字段分隔符设置为

=
,然后当第一个字段为
appid
时,获取第二个字段并删除字符
"
,

© www.soinside.com 2019 - 2024. All rights reserved.