bash - 如何在 Ubuntu 上使用 bash 脚本读取 txt 文档中的值?

标签 bash ubuntu

这个问题在这里已经有了答案:





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/

相关文章:

ubuntu - 找不到可用的 'nginx' 二进制文件。确保 nginx 存在,二进制文件是可执行的

ruby-on-rails - zsh :/usr/bin/bundle: bad interpreter:/usr/bin/ruby: no such file or directory

apache - httpd是一个由多个包提供的虚拟包,必须显式选择一个

ruby - 使 Jenkins 'Execute Shell' 与使用 bash shell 时完全相同

bash - 如何从 bash 或 unix 中的命令行检查 X509 公钥证书

Python:我想使用python脚本执行shell命令

ubuntu - 如何将 PC 连接到 ubuntu Beagle 板

python - 如果任何模式不存在,则删除模式之间的线并打印所有

bash - Sendmail 不适用于 crontab (bash)

macos - 如何在 OS X 下获取当前连接的 VPN 名称