gpt4 book ai didi

linux - 从1行获取带有awk的字符串/短语

转载 作者:行者123 更新时间:2023-12-03 09:55:15 26 4
gpt4 key购买 nike

我们正在使用一个脚本,它会返回以下内容<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><consultaDeudaResponse xmlns="http://www.example.org/webServicesvc-schema-services"><estado>120007</estado><mensaje>CONSULTA DE DEUDA CORRECTA.</mensaje><deudas><deuda><N>0</nisRad><secNis>1</secNis><nombre>TEST</nombre></env:Envelope>我正在尝试从awk中获得 CONSULTA DE DEUDA CORRECTA 的短语,因为您可以看到所有内容都只在一行中,没有空格或逗号。因此,我不知道如何获取该短语并将其设置为变量。
我用了

const=$(awk '/CONSULTA DE DEUDA CORRECTA/ ' output)
const=$(awk '/^CONSULTA DE DEUDA CORRECTA/ ' output)
但要么整个短语与我不需要的其余信息一起出现,要么变量为空。
任何帮助表示赞赏。

最佳答案

由于这是对单个字符串的简单替换,因此它比awk脚本更适合sed脚本:

$ sed -n 's:.*<mensaje>\(.*\)</mensaje>.*:\1:p' file
CONSULTA DE DEUDA CORRECTA.

$ const=$(sed -n 's:.*<mensaje>\(.*\)</mensaje>.*:\1:p' file)
$ echo "$const"
CONSULTA DE DEUDA CORRECTA.
如果您确实想使用awk,则将GNU awk与第三个arg匹配():
$ awk 'match($0,"<mensaje>(.*)</mensaje>",a){print a[1]}' file
CONSULTA DE DEUDA CORRECTA.

关于linux - 从1行获取带有awk的字符串/短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63622595/

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