2016-12-24 3 views

答えて

2

あなたがアペンドを言及しているので、あなたは

awk -F $'\t' 'BEGIN {OFS = FS} NF==10{$0=$0"0"}1' input-file 

以下のよう-F $'\t'は、出力フィールド分離を設定するためのタブ分離部、BEGIN {OFS = FS}の世話をawkすることができます。

NF==10は、10個のレコードしか持たない行と、余分な単語が追加された行を再構成するための{$0=$0"0"}1を探します。 mv

awk -F $'\t' 'BEGIN {OFS = FS} NF==10{$0=$0"0"}1' input-file > output-file ; mv output-file input-file 

それとも、(4.1.0がリリース以降)GNU Awk最新のを持っている場合は、元のファイルの使用を置き換えるには

awk -F $'\t' 'BEGIN {OFS = FS} NF==10{$0=$0"0"}1' input-file > output-file 

として>リダイレクト演算子を使用して別のファイルに書き込むに

、それは「インプレイス」ファイル編集のオプションがあります:

gawk -i inplace -F $'\t' 'BEGIN {OFS = FS} NF==10{$0=$0"0"}1' input-file 
+0

このコマンドを実行するとファイルが変更されますか?または、このコマンドの出力を保存する必要がありますか?このコマンドを正確に貼り付けると、bashにコンテンツが表示され始めたからです。 –

+0

@RaminZahedi:新しいファイルに保存する方法を示す私の更新を参照してください。 – Inian

+0

実際には新しいファイルに保存したくないので、このファイル。最初のコマンドが入力ファイルを変更するだけの場合、なぜそれがシェルに出力されるのでしょうか? –

0

この(GNU SED)あなたのために働くかもしれない:

sed -r 's/[^\t]+/&/11;t;s/$/\t0/' file 

これはitsselfと11列目は、それ以外の場合は、タブを追加し、0置き換えます。

関連する問題