2016-08-20 3 views
-1

ある.txtファイルの特定の列を別の.txtファイルに移動することはできますか?この指定したファイルの出力があるべきようはgawkでGawk回線の削除、スプリッタは

USERID:ORDER#:IP:PHONE:ADDRESS:POSTCODE 
USERID:ORDER#:IP:PHONE:ADDRESS:POSTCODE 

は、私は、別の.txtファイルにADDRESS &郵便番号列を抽出したい:

は私が含まれている.txtファイルを持っている

ADDRESS1:POSTCODE1 
ADDRESS2:POSTCODE2 

など

+0

:出力に「:」の入力がで区切られていることを指定すると、新しいを印刷する「」:あなたは「-F」を使用したいあなたが出力をしたいです別々の行?なぜなら、最初はそうではなかったからです。 –

+2

awkのmanページやチュートリアルを一目瞭然に見れば、これを行う方法がわかります。問題をあなた自身で解決するには**いくつかの努力をしてください。 –

答えて

0

この変換古典AWKです。私は迷ってしまいました

awk -F: '{ print $5 ":" $6 }' <input.txt >output.txt 
0

それを試してみてください。

awk -F: '{printf "%s:%s ",$5,$6}' ex.txt 

入力のみデフォルト

USERID:ORDER#:IP:PHONE:ADDRESS1:POSTCODE1 
USERID:ORDER#:IP:PHONE:ADDRESS2:POSTCODE2 

(私が正しく理解していれば1行に)出力されている

ADDRESS1:POSTCODE1 ADDRESS2:POSTCODE2 

である、それは末尾のスペースで終了し、改行で終わっていないということです。少し複雑な(しかしまだ読める)で固定することができ

awk -F: 'BEGIN {z=0;} {if (z==1) { printf " "; } ; z=1; printf "%s:%s",$5,$6} END{printf"\n"}' ex.txt 
+0

簡単な質問ですが、どのような.txtファイルをプログラムで使用するかを指定するにはどうすればいいですか、またはex.txtは入力ファイルですか、出力しないのですか? –

+0

'ex.txt'は入力です。ファイルにリダイレクトするには、最後に '> out.txt'を追加してください。 –

+0

エラー、 gawk: 'BEGIN gawk:^無効なchar' ''式の –

0
awk -F: 'NR==1 {print $5"1:"$6"1"};NR==2 {print $5"2:"$6"2"}' file 
ADDRESS1:POSTCODE1 
ADDRESS2:POSTCODE2