私は海洋計測器からオフロードされたファイルのリストを持っています。なんらかの理由で、ASCII文字が必要な場所に非ASCII文字が挿入されることがあります。私はgrave-E(È)を見つけました。そこでは、経度記録の西半球を表すWが必要です。ここでBash/Linux .txtファイル内の非ASCII文字を検索し、ASCII文字で置き換えます。
は、データは次のようになります。
CUMSECS Date UTC Time UTC Date Local Time local Z (m) Target Z Z Bot Temp PAR Salin Ang VelX Ang VelY Ang VelZ Pump + Pump - Gctr Fix secs Date UTC Time UTC Date Local Time Local Lat LatD Latm Lon LonD Lonm DOP Temp PAR Salin Batt V CMD secs Date Local Time Local No. Cmds
526068034 09/01/16 18:00:34 09/01/16 11:00:34 3.75 2.69
3.75 0.29 0.000000 0.00 -12 -70 -50 0 5 10
526068039 09/01/16 18:00:39 09/01/16 11:00:39 3.75 2.69
3.75 0.29 0.000000 0.00 -12 -70 -50 0 5 10
526068044 09/01/16 18:00:44 09/01/16 11:00:44 3.74 2.69
3.75 0.29 0.000000 0.00 -12 -70 -50 0 5 10
526068049 09/01/16 18:00:49 09/01/16 11:00:49 3.73 2.69
3.75 0.29 0.000000 0.00 -30732 13588 31909 60399 7538 -82
543622771 03/23/17 22:19:31 03/23/17 15:19:31 38.31877 38
19.1262 N 123.07136 123 4.2812 È 23.6 115.06 0.0000 96.00
121.718
547764151 05/10/17 20:42:31 05/10/17 13:42:31 0.03 16.00
127.00 13.68 1074.904320 33.56 -4908 -3976 261 1 0 0
547764152 05/10/17 20:42:32 05/10/17 13:42:32 0.00 16.00
127.00 13.68 1074.904320 33.56 -4908 -3976 261 1 0 0
私は一連のファイルをループしたいと思い、次のバッシュライン pcregrep -n '[^\x00-\x7F]' 170510_ocean_Copepod.txt
を使用して非ASCII文字を見つけることができ、これらを見つけますそれらをRに読み込んでまとめて処理できるように、 'W'で置き換えてください。あるいは、これらのファイルを読み込もうとしたときにRが返すエラー(「マルチバイト文字列の場所...」)の回避策は、私の目的にも同様に有効です。どんな助けでも大歓迎です。
あなたがこれまでに試してみましたか? –
'pcregrep -n '[^ \ x00- \ x7F]' 170510_ocean_Copepod.txt | sedの/ [^ \ x00- \ x7F]/W/g ''しかし、それは不正なバイト列のsed呼び出しでエラーを返します – SeaSpider
' read.table'の 'fileEncoding'引数を変更しようとしましたか? – Scarabee