我需要删除数据之间和行尾之前的额外选项卡。下面是一个示例记录。该记录是一个制表符分隔的。问题是当我尝试将此数据加载到数据库中时,数据中存在的额外制表符导致了问题。要查看额外的选项卡,请复制以下内容并粘贴到 Notepad++ 中以了解问题。有什么方法可以删除“”“”包含的数据和 EOL 之前的选项卡之间的选项卡。
"88115082436608 2018-12-07 02:32:08 4282 CTYGGJG BANK United States FTFVGHVHGG|SRDRGFGFGHFG - CATATSSS-WC - TYTY - Relevant World-Check 2018-12-07 02:32:34 TYTUYUIIHHHIHUIH GUGUUIUHUH BANK UHJBJBHJGHUH HGGGG USA UUHHUIIKHJ BANK" " JHHHNJMNJ|COMPANY BANK|COMPANY OF YUIUHIH 0.37495 Medium 0 1 Immaterial User Adjudicated ""additionally below are the mitigation factors. 1. The hits are more than uyhyhuh old"
2. The entity has yuyyiy into. 3. It belongs to a well known
and bhjhjhhijji and has diverse ghjhjjhiujh in many locations therefore the well
"standing and uhyuhiuiui of the GHGHUGYG is considered."" 11492381 [email protected] 13904028 997380"
答案1
您可以通过多种方式完成此操作,其中一些如下所示:
使用sed
编辑器,您可以按如下方式执行此操作(假设记录具有平衡双引号),并且我正在显示\t
一个TAB
字符,您可能必须使用文字TAB
来代替该字符,以防万一您sed
是POSIX
.我正在将TABs
双引号内的所有内容转换为%
字符 YMMV。边远地区TABs
没有受到影响。
$ sed -e '
/\n/!y/"/\n/
/\n/{
s//"/;s//"/
:loop
s/\(".*\)\t\(.*"\)/\1%\2/
tloop
/\n/!b
H;s/.*//;x;D
}
' input.file
使用使Perl
事情变得相当简单:
$ perl -lpe 's/(?<=")(.*?)(?=")/$1 =~ y[\t][%]r/eg' input.file
华泰