使用awk将制表符分隔的文本文件中的两列相乘

时间:2013-09-13 14:38:36

标签: awk

如何使用awk将列col23乘以10和col24乘以20? 谢谢你看这个:))

city    town    id  col1   col2   col3   col4   col21   col22   col23   col24
----------------------------------------------------------------------------------
dublin  town1   1   1       2       3       5       1       2       3       4
dublin  town1   2           2       8       10      6       7       8       9
dublin  town1   3           12      13      15      11      12      13      14
dublin  town2   4   1       2       3       5       1       2       3       4
dublin  town2   5   6       7       8       10      6       7       8       9
dublin  town2   6   11      12      13      15      1       12      13      14

我试过这个,但似乎没有用 awk -F,' {$ 10 * 10; print}' OFS =,inputFile

1 个答案:

答案 0 :(得分:4)

由于col23在col10中,而col24在col11中,所以这样就可以了:

$ awk '/dublin/{$10*=10; $11*=20}1' OFS="\t" file
city    town    id  col1   col2   col3   col4   col21   col22   col23   col24
----------------------------------------------------------------------------------
dublin  town1   1       1       2       3       5       1       2       30      80
dublin  town1   2       2       8       10      6       7       8       90      0
dublin  town1   3       12      13      15      11      12      13      140     0
dublin  town2   4       1       2       3       5       1       2       30      80
dublin  town2   5       6       7       8       10      6       7       80      180
dublin  town2   6       11      12      13      15      1       12      130     280

我们得到记录10和11并分别乘以* 10,* 20(a=*10等于a=a*10)。然后我们使用输出字段分隔符"\t",这是一个标签。