2016-06-21 5 views
0

grepに関する質問があります。grepで部分文字列を取得する

私はシンプルテキストとしていくつかのアドレスデータをascファイルに持っています。最初の30文字は名前のためのものです。名前が30文字より短い場合は空白が埋められ、長さが30であることを確認します。31桁目には、住所である次のデータと名前を区切る空白が入ります。アドレスの後には空白やその他のデータもあります。私の計画は、インデックス32から始まり、インデックス50に続くアドレスを取得することです。私はたいてい、何も得られないか、またはラインの始めから始まるデータを取得します。私は、このような

grep -iE '^.{30}' '.{8}$' myfile.asc 

又は

grep –o -P '^.{31,34}' myfile.asc 

データのすべてのセットがデータを分離する空白を除いて異なるので、私は、特定のパターンを検索することができないなど、いくつかの方法を試みました。パイプを介して他のメソッドに頼ることなく、そのような部分文字列を取得することは可能ですか?私はパフォーマンスが問題であるのでgrepを使いたい。

+0

私は 'sed'がこれにもっと適していると思います。 –

答えて

0

固定位置を扱う場合は、grepの代わりにcutを使用しないのはなぜですか?

cut -c 32-50 myfile.asc 
関連する問題