7

既存のタブ区切りテキストファイルの中央に列(コンテンツ「0」)を追加しようとしています。私は自分がやりたいことを想像するsedか、実行します。awk私はこれをほぼ実行するさまざまなソリューションをオンラインで見ましたが、それらは私が変更するのに十分なほど簡単に説明されていません!

私は現在このコンテンツを持っています:

Affx-11749850   1       555296  CC

このコンテンツが必要です

Affx-11749850   1   0   555296  CC

コマンドawk '{$3=0}1'filenameを使用すると、フォーマットが台無しになり、3番目の列を0で追加するのではなく、列3を0で置き換えます。

私がこの問題と将来の同様の問題を解決できるように(説明付きで!)どんな助けでも大いに感謝します。

4

2 に答える 2

12

暗黙の{ print }ルールを使用0し、2番目の列にを追加します。

awk '$2 = $2 FS "0"' file

またはsed、単一のスペース区切り文字を想定すると、次のようになります。

sed 's/ / 0 /2' file

またはperl

perl -lane '$, = " "; $F[1] .= " 0"; print @F'
于 2012-08-14T11:10:04.863 に答える
1
awk '{$2=$2" "0; print }' your_file

以下でテスト済み:

> echo "Affx-11749850 1 555296 CC"|awk '{$2=$2" "0;print}'
Affx-11749850 1 0 555296 CC
于 2012-08-14T10:55:58.097 に答える