gpt4 book ai didi

linux - 从文件中提取子字符串并将它们存储在 shell 变量中

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:57 25 4
gpt4 key购买 nike

我正在编写脚本。我有一个名为 test.txt 的文件,其内容如下:

a. parent = 192.168.1.2
b. child1 = 192.168.1.21
c. child2 = 192.154.1.2

我需要将值存储在名为 parent、child1 和 child2 的三个不同变量中,如下所示,然后我的脚本将使用这些值:

parent = 192.168.1.2
child1= 192.168.1.21
child2= 192.154.1.2

我如何使用 sed 或 awk 做到这一点?我知道有一种方法可以使用 awk 函数 substr 提取子字符串,但我的特殊要求是如上所述将它们存储在变量中。谢谢

最佳答案

如果你使用的是 bash,试试这个:

$ declare $(awk '{print $2"="$4}' file)
$ echo "$parent"
192.168.1.2

如果文件中的值中包含空格,您想要初始化变量,那么您只需在调用声明之前将 IFS 设置为换行符,例如(简化了输入文件以突出显示 = 符号右侧空白的重要部分):

$ cat file
parent=192.168.1.2 is first
child1=192.168.1.21 comes after it
child2=and then theres 192.154.1.2

$ IFS=$'\n'; declare $(awk -F'=' '{print $1"="$2}' file)
$ echo "$parent"
192.168.1.2 is first
$ echo "$child1"
192.168.1.21 comes after it

关于linux - 从文件中提取子字符串并将它们存储在 shell 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28889190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com