2016-06-20 4 views
-1

パイプ(|)で区切られたデータファイルを取得していますが、最後の列の最後に合計17個の列があり、異なる迷惑文字があります。欲しい。最後の列の値が存在する場合、値は常にタイムスタンプ、つまりYYYY-MM-DD HH:MI:SSですが、最後の列の値も存在しないことがあります。Unixの行末から迷惑メールを取り除く

行末に迷惑行為文字がある場合は、その行末から迷惑行為文字を削除する方法が必要です。

1|0059019539|12MO-V43|0000000001|0000000001||2015-08-06 15:25:04||2015-08-06 15:25:04|2016-08-05|0000000011|0000000001|-10.00|P000101581|V7|Action|2015-08-05 00:00:00 
    1|0059019539|VAGR~V47|0000000001|0000000001||2015-08-06 15:25:04||2015-08-06 15:25:04|2016-08-05|0000000011|0000000001|-33.00|P000101581|33-12MO-V2|Action|2015-08-05 00:00:00^@^@^@^@ 

ここでは、2番目の行に迷惑メールが含まれています。

+0

を試すことができます '^ @'ジャンク文字ではありません - それは[null文字](HTTPSのキャレット表記です://en.wikipedia .org/wiki/Null_character)。 –

+0

タイムスタンプである最後の列の値の後の私のために、何か来るのはジャンクで、私はそれを削除したい。 –

答えて

1
cat ACTUALFILE.DATA|awk -F'|' '{ print $1 "|" $2 "|" $3 "|" $4 "|" $5 "|" $6 "|" $7 "|" $8 "|" $9 "|" $10 "|" $11 "|" $12 "|" $13 "|" $14 "|" $15 "|" $16 "|" substr($17, 1, 19)}' > BACKUPFILE.DATA 
0

迷惑がバイナリである場合は、あなたが

strings ACTUALFILE.DATA > BACKUPFILE.DATA 
関連する問題