区切り文字なしでテキストファイルから列を抽出する

区切り文字なしでテキストファイルから列を抽出する

デフォルトでは、各行が一緒に圧縮されたデータストリームである大きなテキストファイルがあります。特定の列の一部のデータエラーを調査するように求められました。データはいかなる方法でも分離されません。ただし、「列」の長さのリストと各「列」に関連するデータがあるかどうかの説明があります。

Excelを使用しますが、Excelの列の区切り制限は1行に1000文字で、各行はそれ以上です。これらのフィールドの多くには、フィラーとして30個の空白文字列があり、少なくとも15個程度があります。指定された「空」フィールドを解析したいと思います。

私にとって必要なのは、ファイルを入力して提供できる配列を使用して、列の長さと「X」などの表示を使用して無視したい列を無視し、新しいファイルをエクスポートする方法です。区切り記号を使用すると、分析のためにExcelに戻すことができます。

たとえば、行を含むファイルがあり、aaaaaabbbbbccccdddddeeeffffffファイルに配列を提供すると、その行[6 5 4X 5 3X 6]を含むファイルが作成されます。aaaaaa^bbbbb^ddddd^ffffff

私が使用できる方法はありますかgrepawkそれともこれを行う方法はありますかsed

よろしくお願いします。

ベストアンサー1

短いcutコマンドモード:

サンプルinput.txtコンテンツ:

aaaaaabbbbbccccdddddeeeffffff
wwwwwwddddd111133333xxxaaaaaa
ffffff00000sssszzzzz000rrrrrr

働く:

cut -c 1-6,7-11,16-20,24-29 --output-delimiter=^ input.txt
  • -c- 文字のみ選択

  • 1-6,7-11,16-20,24-29- 連続文字位置範囲、柔軟で調整可能

  • --output-delimiter=^- 出力フィールドの区切り記号を必要に応じて調整できます。


出力:

aaaaaa^bbbbb^ddddd^ffffff
wwwwww^ddddd^33333^aaaaaa
ffffff^00000^zzzzz^rrrrrr

おすすめ記事