2017-08-09 12 views
3

これでフィールドセパレータとともに列を出力しようとしました。awkを使ってフィールド区切り記号としてスペースを使用するには?

私の場合は失敗します。

awk.txt(Input file) 

Sr No Name Sub Marks 
1) Amit Physics 80 
2) Rahul Maths 90 
3) Shyam Biology 87 
4) Kedar English 85 
5) Hari History 89 
私は次のように試してみました

awkコマンド: -

awk -F ' ' '{print $2 $3;}' awk.txt > output.txt 

得られる出力:

NoName 
AmitPhysics 
RahulMaths 
ShyamBiology 
KedarEnglish 
HariHistory 

予想される出力:

Name Sub 
    Amit Physics 
    Rahul Maths 
    Shyam Biology 
    Kedar English 
    Hari History 
+0

あなたはDOSマシン上でコマンドを実行しているか)されていますが、それから貼り付けコピー?一重引用符はユニコード文字列で、Linuxでは動かないかもしれません。 – Inian

+0

Linuxの端末で実行しています。 – PathFinder

+0

引用符は間違っていますが、 '{}'を引用符で囲み、 '-F'の後ろに' – Inian

答えて

1
awk '{print $3,$4;}' awk.txt > output.txt 

フィールドセパレータを示す必要はありません。フィールド番号は1から始まるので、3番目と4番目のフィールドが必要です。 OFS(出力フィールドセパレータ)を印刷する場合はカンマを使用します。

か:

awk 'BEGIN{FS=OFS=" ";}{print $3,$4;}' awk.txt > output.txt 
+1

これは素晴らしい作品です。 @tso – PathFinder

関連する問題