这个问题在这里已经有了答案:
Parsing variables from config file in Bash
(7 个回答)
8年前关闭。
我是 bash 脚本的新手,我的任务是读取配置文件的第一行,
就是这样……我想要……
假设“sample.conf”是文件,在文件中有一行..
像这样,
webURL: "http://www.sampledomain:8080"
我想要的是,我需要获取 webURL 的值,即“http://www.sampledomain:8080”,那么如果 URL 不等于“http://www.sampledomain:8080”,我需要用正确的值更改它。希望你能帮助我,任何帮助将不胜感激。
谢谢你。
最佳答案
使用awk
像这样:
URL=$(awk -F\" '/^webURL/{print $2}' sample.conf)
echo $URL
http://www.sampledomain:8080
$()
意思是“将运行封闭命令的结果放入变量URL
”。 awk
然后将字段的分隔符设置为双引号。然后它在您的文件中查找以“webURL”开头的行,当它找到它时,它会输出第二对双引号之间的所有内容,即行上的字段 2。编辑回答更多问题
如果要解析出
subscribe_key
来自名为 thing.java
的 java 文件中的值,看起来像这样:subscribe_key = 'sub-f-xx-xx-xx-xx-xx';
你可以使用这个:
key=$(awk -F\' '/^subscribe_key/{print $2}' thing.java)
echo $key
sub-f-xx-xx-xx-xx-xx
请注意,我在
-F
之后更改了双引号。用单引号告诉 awk
该字段现在用单引号分隔。请注意,如果您在同一文件中有用单引号和双引号标记的值,您可以告诉
awk
使用单引号或双引号作为字段分隔符,如下所示:value=$(awk -F"\'|\"" '/^subscribe_key/{print $2}' yourFile)
echo $value
sub-f-xx-xx-xx-xx-xx
value=$(awk -F"\'|\"" '/^webURL/{print $2}' yourFile)
echo $value
http://www.sampledomain:8080
关于bash - 如何在 Ubuntu 上使用 bash 脚本读取 txt 文档中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23005503/