仅将函数应用于一列,具有可变位置

use*_*907 4 awk

我有一堆不同的文件.所有文件都包含标题为ID的列,但不一定在所有文件的同一位置.我有一个函数,我想在所有文件中应用ID,将它们更改为NEWID.

我知道,如果我传入ID的列号,我可以非常简单地做到这一点,说它是5列文件中的第3列,类似于:

awk -v column=$COLNUMBER '{print $1, $2, FUNCTION($column), $4, $5}' FILE
Run Code Online (Sandbox Code Playgroud)

但是,如果我的所有文件都有数百个列,并且每个文件中都有任意位置,那就非常繁琐了.我正在寻找一种方法来做一些事情:

awk -v column=$COLNUMBER '{print #All columns before $column, FUNCTION($column), #All columns after $column}' FILE
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的循环,但尚未开始工作.

Dan*_*ing 5

简单:

$ awk -v column=$COLNUMBER '{ $column = FUNCTION($column); print }' $FILE
Run Code Online (Sandbox Code Playgroud)