データ間と行が終わる前に、追加のタブを削除する必要があります。以下はサンプルレコードです。レコードはタブで区切られます。問題は、このデータをデータベースにロードしようとすると、データ内の追加のタブ文字が問題を引き起こすことです。追加タブを表示するには、次をコピーして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
。 YMMVキャラクターに。郊外は影響を受けませんでした。\t
TAB
TAB
sed
POSIX
TABs
%
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
ファタイ