我有一个包含三列的长文件。我想添加一列(作为第一列),前 200 行使用“5”,接下来的 200 行使用“6”,依此类推...
答案1
awk 'BEGIN { c1 = 5 } { print c1, $0 } FNR%200 == 0 { ++c1 }' file
c1
这会在程序开始时将变量 初始化为 5 awk
。然后打印所有输入行并添加该变量的当前值。
对于行号 ( FNR
) 是 200 倍数的任何行,打印该行后此变量将增加 1。
增量 toc1
将在打印第 200、400 行等之后发生。
默认情况下,数字和原始数据之间的分隔符为空格字符。通过OFS
在块中设置(或在 的命令行上BEGIN
使用)将其更改为选项卡(或任何您想要的):-v OFS='\t'
awk
awk 'BEGIN { OFS = "\t"; c1 = 5 } { print c1, $0 } FNR%200 == 0 { ++c1 }' file
将输出重定向到新文件名以保存它。