2017-01-03 4 views
-1

で開いているが、私はこのようなデータセットしている:整形出力のawkのテキストや文書

BRCC hete 1 15869 105A 
BRAC he 1 1799967 956G 
BCAS he 2 7334543 369AFVC 
RCA he 4 9534262 7806-14 
RCA he 5 144848 1114A 
RA he 5 206118 52A 
BCAVV he 5 543304 3807TCD 
BCA hoo 1 106091515 4308TDDSC 
BCA hoo 1 206075 4563A 
BCA hoo 1 799917 2612CDSA 
BCA hoo 2 206076 513G 
BCA hoom 3 16941 3113A 

データセットは、6列を持っており、タブ別のものです。テキストを書式設定してヘッダーを追加したいと思います。

awk -v OFS="\t" 'BEGIN{printf "%s\t %s\t %s\t %s\t %s\t \n" ,"TEST","HEADER","CLASS","CLASS2","SVGH" pritnf "\n" "__________________________________________________"} {printf "%s\t %s\t %s\t %s\t %s\t \n", $1,$2,$3,$4,$5}' in.txt > out.doc 

しかし、私は、ドキュメントやLibreOfficeの中にオープンに出力を保存する必要があります。私のソリューションです。しかし、出力は次のようになります。ヘッダーの下の列を維持するために、テキストをフォーマットするためにどのような方法

enter image description here

あります - より良い読めるようにするには?

enter image description here

注:このように、私は任意のヘルプだけでなく、awkのソリューションをapperciateます。それは、このような音

+1

を第一には、Perlであなたがこの 'perlの-E「のprintf『%-10s%-10s \ n』は、『BRCC』のようにスペースを追加することができ、各列で必要なスペースを決定します、 "hoom" ' –

+0

awkスクリプトから最初のドキュメントが出力されます。 2番目の画像はLibreOffice – Paul

+0

@HåkonHæglandで自分で編集しました。ありがとうございます。構文全体を書くことは可能ですか? Perl私は本当に知りません。 – Paul

答えて

4

はあなたが必要とするすべてである:

$ awk 'BEGIN{print "TEST","HEADER","CLASS","CLASS2","SVGH"} 1' file | column -t 
TEST HEADER CLASS CLASS2  SVGH 
BRCC hete 1  15869  105A 
BRAC he  1  1799967 956G 
BCAS he  2  7334543 369AFVC 
RCA he  4  9534262 7806-14 
RCA he  5  144848  1114A 
RA  he  5  206118  52A 
BCAVV he  5  543304  3807TCD 
BCA hoo  1  106091515 4308TDDSC 
BCA hoo  1  206075  4563A 
BCA hoo  1  799917  2612CDSA 
BCA hoo  2  206076  513G 
BCA hoom 3  16941  3113A 

をし、それを表示するには、LibreOfficeの中で一定の幅のフォントを使用します。ヘッダ行アンダースコアには:

$ awk 'BEGIN{print "TEST","HEADER","CLASS","CLASS2","SVGH"} 1' file | column -t | 
    awk '{print} NR==1{gsub(/./,"_"); print}' 
TEST HEADER CLASS CLASS2  SVGH 
_____________________________________ 
BRCC hete 1  15869  105A 
BRAC he  1  1799967 956G 
BCAS he  2  7334543 369AFVC 
RCA he  4  9534262 7806-14 
RCA he  5  144848  1114A 
RA  he  5  206118  52A 
BCAVV he  5  543304  3807TCD 
BCA hoo  1  106091515 4308TDDSC 
BCA hoo  1  206075  4563A 
BCA hoo  1  799917  2612CDSA 
BCA hoo  2  206076  513G 
BCA hoom 3  16941  3113A 
+1

エド、ありがとう、これは私が思ったよりずっと簡単です。ヘッダーの下にこの行を "_____"のままにする方法はありますか? – Paul

+1

'...列-t | sed 2i $(printf "_%。0s" {1..42}) ' – karakfa

+1

ヘッダ行を強調するawkコマンドを追加しました。 –

関連する問題