2016-11-22 25 views
0

私はファイルを解析して情報を抽出する必要があるタスクがあります。私はこれをbashを使って簡単に行うことができますが、私はそれをunixコマンドでのみ行う必要があります。UNIXコマンドを使用したテキスト操作

Set<tab>one<tab>two<tab>three 
Set<tab>four<tab>five<tab>six 
ENDSET 

Set<tab>four<tab>two<tab>nine 
ENDSET 

Set<tab>one<tab>one<tab>one 
Set<tab>two<tab>two<tab>two 
ENDSET 

... 

ようになど:

は例えば、私は次のようなファイルを持っています。私は特定の数のセットを抽出することができるようにしたい、最初の10を言う。また、私は列から情報を抽出できるようにしたい。

もう一度、これはbashスクリプトを使用するのは簡単なことですが、私はunixコマンドでのみこれを行う方法がわかりません。シェルスクリプトでコマンドを組み合わせることはできますが、もう一度unixコマンドだけを組み合わせることができます。

+1

_Unixコマンドとはどういう意味ですか? 'awk'はUnixコマンドですか?そして 'python'? – mouviciel

+0

私は、sed、awk、またはperlを通して物事をパイプすることができると思います。 bash。私は残念ながら、それらのすべてでお尻です。 – basil

+1

「bashを使って」どうやってやるの?これは "unix commands only"を使用する場合とほとんど同じです。 –

答えて

0

出力例がない場合、目標を知るのは難しいですが、いずれにしても、使用できるUNIXコマンドはAWKです。

例:

$ awk '/ENDSET/{ if(++count==2) exit(0);next; }NF{print}' file.txt 
Set  one  two  three 
Set  four five six 
Set  four two  nine 

エキス3つのセットとプリント2列目のみ(注1:( "エンドセット" も空白行を含めずに)あなたのデータサンプルから

抽出物2つのセット列は常に「設定」です):

$ awk '/ENDSET/{ if(++count==3) exit(0);next; }$2{print $2}' file.txt 
two 
five 
two 
one 
two 

など(詳しくは$ man awk

関連する問題