gpt4 book ai didi

bash - awk/gsub - 每行多次打印双引号之间的所有内容

转载 作者:行者123 更新时间:2023-11-29 09:03:18 25 4
gpt4 key购买 nike

我试图在双引号 (sampleField="sampleValue") 之间打印所有数据,但无法获取 awk 和/或 sub/gsub 返回双引号之间的所有数据实例。然后我想在各自的行上打印所有实例,以将数据保存在一起。

这是 input.txt 文件的示例:

deviceId="1300", deviceName="router 13", deviceLocation="Corp"
deviceId="2000", deviceName="router 20", deviceLocation="DC1"

我正在寻找的输出是:

"1300", "router 13", "Corp"
"2000", "router 20", "DC1"

我在使用 gsub 删除 = 之间的所有数据时遇到问题。每次我尝试不同的方法时,它总是只返回第一个字段并移到下一行。

更新:

我忘了说,我不知道每一行会有多少个双引号封装的字段。它可以是 1、3 或 5,000。不确定这是否会影响解决方案,但想确保它在那里。

最佳答案

sed 解决方案:

sed -r 's/[^\"]*([\"][^\"]*[\"][,]?)[^\"]*/\1 /g'
<<< 'deviceId="1300", deviceName="router 13", deviceLocation="Corp"'

输出:

"1300", "router 13", "Corp"

或者对于一个文件:

sed -r 's/[^\"]*([\"][^\"]*[\"][,]?)[^\"]*/\1 /g' input.txt

关于bash - awk/gsub - 每行多次打印双引号之间的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488221/

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