gpt4 book ai didi

linux - 在unix中为两个字段添加双引号

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

我有一个包含 3 列的文件,第二列是纬度/经度,可能有也可能没有数据。

2012-01-10 21:27:52.811,,ABC   -- No lat/long
2012-01-10 21:27:52.811,37.8889329,-112.1876328,XYZ -- with lat long

谁能帮我用 sed/awk/perl 把它转换成

2012-01-10 21:27:52.811,"37.8889329,-112.1876328",XYZ

在所有其他情况下,它不应该添加任何双引号

提前致谢

最佳答案

我可能会使用 awk 做这样的事情:

% echo '2012-01-10 21:27:52.811,,ABC   -- No lat/long
2012-01-10 21:27:52.811,37.8889329,-112.1876328,XYZ -- with lat long
' | awk -F',' -v OFS=',' '
$2 && $3 {
$2 = "\"" $2
$3 = $3 "\""
}

1
'
2012-01-10 21:27:52.811,,ABC -- No lat/long
2012-01-10 21:27:52.811,"37.8889329,-112.1876328",XYZ -- with lat long

这假设字段在输入和输出时以逗号分隔。

如果第二个和第三个字段被填充则

  • 在第二个字段前放一个"
  • 在第三个字段后放一个"

打印所有行(1)。

这里有很多假设,所以你必须挖掘出 sed & awk book并对其进行调整以满足您的需求。

关于linux - 在unix中为两个字段添加双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989341/

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