awking txtファイルの列の問題

awking txtファイルの列の問題

以下のようにtxtファイル(input.txt)があります。

A_Karitiana-4.DG        Ignore_Karitiana(discovery).DG
A_French-4.DG   Ignore_French(discovery).DG
A_Dinka-4.DG    Dinka.DG
A_Dai-5.DG      Dai.DG
S_Dai-2.DG      Dai.DG
B_Dai-4.DG      Dai.DG
S_Dai-3.DG      Dai.DG
S_Dai-1.DG      Dai.DG

input.txtの最初の列のみを含む新しいtxtファイル(output.txt)を作成する必要があります。したがって、output.txtは次のようになります。

A_Karitiana-4.DG        
A_French-4.DG   
A_Dinka-4.DG    
A_Dai-5.DG      
S_Dai-2.DG      
B_Dai-4.DG      
S_Dai-3.DG      
S_Dai-1.DG      

私は次のコマンドを試しました。

awk '$1' input.txt > output.txt

これ:

awk -F' ' '$1' input.txt > output.txt

しかし、それらはすべてinput.txtと同じように見えるoutput.txtファイルを生成します。

区切り記号の問題のようですが、解決策がわかりません。

ベストアンサー1

印刷しません。努力する

awk '{print $1}' input.txt > output.txt

(試した方法で)式を指定すると、awkデフォルトと少し似て動作しますgrep。一致する行はすべて正確に印刷されます。

  1. awk '/regexp/' file.txt- 正規表現に一致する行を印刷します。
  2. awk 'NR==3' file.txt- 3行印刷
  3. awk '1' file.txt- 1 が真のすべての行を印刷します。それがすべてです(わかりました、これはぎこちない猫ですが、私たちはあなたがやっていることに近づいています)。
  4. awk '$1' file.txt$1true と評価されるすべての行を印刷します。つまり、空ではありません(falseと評価されません(例: "0"))。つまり、ファイルが与えられたらすべての行を印刷します($1これは常に数値ではなく空でない文字列を含むため)。

おすすめ記事