gpt4 book ai didi

bash - Awk 将双引号字符串视为一个标记并忽略其间的空格

转载 作者:行者123 更新时间:2023-11-29 08:43:34 25 4
gpt4 key购买 nike

数据文件-data.txt:

ABC "I am ABC" 35 DESC
DEF "I am not ABC" 42 DESC

cat data.txt | awk '{print $2}'

将导致“I”而不是被引用的字符串

如何使 awk 忽略引号内的空格并认为它是一个单独的标记?

最佳答案

另一种选择是使用 FPAT变量,它定义了描述每个字段内容的正则表达式。

将此 AWK 脚本保存为 parse.awk:

#!/bin/awk -f

BEGIN {
FPAT = "([^ ]+)|(\"[^\"]+\")"
}
{
print $2
}

使用 chmod +x ./parse.awk 使其可执行并将您的数据文件解析为 ./parse.awk data.txt:

"I am ABC"
"I am not ABC"

关于bash - Awk 将双引号字符串视为一个标记并忽略其间的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6619619/

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