ファイル内の変数といくつかの既存の列を印刷します。

ファイル内の変数といくつかの既存の列を印刷します。

3つの列を持つ長いファイルがあります。最初の200行に「5」を使用し、次の200行に「6」などを使用して(最初の列に)列を追加したいと思います。

答え1

awk 'BEGIN { c1 = 5 } { print c1, $0 } FNR%200 == 0 { ++c1 }' file

c1これはプログラムの起動時に変数を5に初期化しますawk。次に、すべての入力行を印刷し、その変数の現在の値を追加します。

行番号(FNR)が200の倍数の行の場合、この変数は行が印刷された後に1ずつ増加します。

c1ライン200、400などを印刷した後に増加が発生します。

デフォルトでは、数値と生データの間の区切り文字は空白文字です。OFSブロックに設定するか、コマンドラインで使用してBEGINタブ(または必要に応じて)に変更します。-v OFS='\t'awk

awk 'BEGIN { OFS = "\t"; c1 = 5 } { print c1, $0 } FNR%200 == 0 { ++c1 }' file

保存するには、出力を新しいファイル名にリダイレクトします。

関連情報