EOLの代わりに区切り文字でデータファイルの行を解析します。

EOLの代わりに区切り文字でデータファイルの行を解析します。

私は制御できない形式の大きなテキストファイル(600MB)から生データを解析しようとしています。

問題は、行末の位置が間違っていることです。

head -1 filename | wc -w

各行は約1.2Kの単語を生成します。私のターゲット行は\ x 06文字で区切られています。

各行が ^F(\x06) で終わるか開始するように、この行をどのように再構成できますか?私は多くのsedチュートリアルを読んだが、この種のプロセスについては誰も言及していない...

^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0

sedまたはこれに似た方法でこれを行うための最良の方法は何ですか?

答え1

awk改行以外のレコード区切り文字を使用できます。次のように使用できます。

awk 'BEGIN { ORS=RS="\x06" } ...' input-file

ここで...はデータに対して実行したいことです。

関連情報