【发布时间】:2019-05-12 06:51:09
【问题描述】:
我有一个逗号分隔的 CSV 文件(来自数据库),但不幸的是,最后一个字段是双引号多行字符串,如下所示:
138749,CJIKMN,"d4IFtjCCBbIGCSqGSIb3DQEHAqCCBaMwggWfAgEDMQ0wCwYJYIZIAWUDBAIBMG4GBmeBCAEBAaBk
BGIwYAIBADALBglghkgBZQMEAgEwTjAlAgEBBCAeyMDmgdZS30d5JSraWWoUX50J1vKONjxUYxK9
iPZWWjAlAgECBCCzqs7CzH7+3j3trSz+/dcCmud3/Jo9ZYFmN4VTvTjB56CCBBowggQWMIIDnaAD
Lp69+Z3QgAIgHOYjzAQlDRHnDJ/zDtlkWN5pq7T7h3ef9Mnv4ocSuAA="
136065,CIJEPY,"d4IF4jCCBd4GCSqGSIb3DQEHAqCCBc8wggXLAgEDMQ0wCwYJYIZIAWUDBAIBMIGYBgZngQgBAQGg
gY0EgYowgYcCAQAwCwYJYIZIAWUDBAIBMHUwJQIBAQQgNQdsXvKebYUdH0JybzpY2evf+v9Xg86b
hkjOPQQDAjBBMQswCQYDVQQGEwJHQjEOMAwGA1UEChMFVUtLUEExIjAgBgNVBAMTGUNvdW50cnkg
LUxRjUXbTgfGwUKOFwemsc4KXbsLZ13MkbNfAQ=="
如何合并这些多行,不包括引号,保持其余部分不变?我能想到的都是:
sed '/\"/{n;:l N;/\"/b; s/\n//; bl}' sampleOut.txt 但这不是我想要的。我正在寻找这个:
138749,CJIKMN,d4IFtjCCBbIGCSqGSIb3DQEHAqCCBaMwggWfAgEDMQ0wCwYJYIZIAWUDBAIBMG4GBmeBCAEBAaBkBGIwYAIBADALBglghkgBZQMEAgEwTjAlAgEBBCAeyMDmgdZS30d5JSraWWoUX50J1vKONjxUYxK9iPZWWjAlAgECBCCzqs7CzH7+3j3trSz+/dcCmud3/Jo9ZYFmN4VTvTjB56CCBBowggQWMIIDnaADLp69+Z3QgAIgHOYjzAQlDRHnDJ/zDtlkWN5pq7T7h3ef9Mnv4ocSuAA=
知道我该怎么做吗? awk 也可以。
-桑
【问题讨论】:
标签: bash awk sed pattern-matching