1

^A^B\N (文字通り)、および目に見える改行など、 (できればsedを使用して)消去する必要があるデータ ダンプに、リテラル、可視、およびエスケープされた制御文字の奇妙な組み合わせがあります。表示されている改行がそのまま残るようにファイルをきれいにし、すべての ^A をタブ文字に置き換え、すべての^B\N^B\N (データ内のすべての UNIX 時間値に続く、たとえば 13068505731812510) を削除する必要があります。

これはless、シェル コマンドで使用したコンテンツの外観です (シェルでは、^Aおよび^B文字は、制御文字を示すために暗い背景になっています)。

^A guid ^A unix-time ^B\N^B\N^A 4 ^A 192.168.21.136 ^A 7.0 ^A IE ^A 8 ^A guid ^A WinNT ^A ... (目に見える改行)

または文字通りの例...

... ^A40C4595C-0B9D-46B7-8214-3D9CE2B5F057^A13071154505579551^B\N^B\N^A4^A192.168.21.136^A7.0^AIE^A8^AE6979203-F58B-4D20-9D66-7F5369BF9E32^AWinXP^A ...

これまでのところ、私がsedに供給してきたエスケープ シーケンスは、期待される出力を生成していません。できるだけ少ないパスでこれらすべてを実現するために必要な魔法のエスケープを知っている人はいますか? (ファイルのギグがたくさんあり、時間がカウントされます。)ありがとう!同じパスで UNIX 時間の数字を人間が読める時間に変換できればボーナス ポイントです。

4

1 に答える 1

0

^A をタブに変更します。

sed 's/\^A/'"$(printf '\011')"'/g'

^B^N を取り除きます:

sed -e 's/\^B\\N\^B\\N//g'
于 2011-07-13T22:15:29.227 に答える