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
保存するには、出力を新しいファイル名にリダイレクトします。