双引号内的逗号分隔值

时间:2016-11-03 13:18:18

标签: linux unix awk

我有一个用逗号分隔的数据文件,由/GitRepo/ | -- PROJ1 | -- A -- B | -- PROJ2 -- A (but different from PROJ1/A) -- C 包围的数据:

""

我希望将第3列值($ head file.txt "HD","Sep 13 2016 1:05AM","0001" "DT","273093045","192534" "DT","273097637","192534" .. )分配给我的变量。

我试过

0001

我没有为FILE_VER=`cat file.txt | awk -F',' '{if ($1 == "HD") print $3}'` 分配任何值。请帮我正确的语法。

4 个答案:

答案 0 :(得分:1)

另一个awk版本:

awk -F'"' '$2 == "HD"{print $6}' file

答案 1 :(得分:0)

您可以更改文件以将逗号和引号替换为制表符:

{{1}}

也许有一个只使用awk的解决方案,但这很好用!

答案 2 :(得分:0)

你快到了。简单地删除引号应该足够好了:

foo=$(awk -F, '$1=="\"HD\""{gsub(/"/,"",$3);print $3}' file)

答案 3 :(得分:0)

不确定这是最佳方式,但有效:

FILE_VER=$(awk -F',' '$1 == "\"HD\"" {gsub("\"","",$3); print $3}' file.txt)
  1. 测试引号之间的HD
  2. 打印结果前删除引号