Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用awk将制表符分隔的文本文件中的两列相乘_Awk - Fatal编程技术网

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

使用awk将制表符分隔的文本文件中的两列相乘,awk,Awk,如何使用awk将列col23乘以10和col24乘以20? 谢谢你看这个:) 我试过了,但似乎不起作用 awk-F,“{$10*10;print}”of s=,inputFile因为col10中有col23,col11中有col24,类似这样的东西可以: $ awk '/dublin/{$10*=10; $11*=20}1' OFS="\t" file city town id col1 col2 col3 col4 col21 col22 col23

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

我试过了,但似乎不起作用
awk-F,“{$10*10;print}”of s=,inputFile

因为col10中有col23,col11中有col24,类似这样的东西可以:

$ 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”
,它是一个选项卡。

由于col10中的col23和col11中的col24,类似这样的东西可以使它:

$ 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”
,这是一个选项卡。

您忘记了OFS的
+1正在挂起…:)哦,@Kent,我还以为你已经上周末了呢:)谢谢你指出这一点,这样的输出效果更好!有人告诉我,无论我们在哪里,太阳都会在下午6点出现:D@fedorqui解决方案无法正常工作。对于空值,列值向左移动。第2排和第3排在您的solution@SantoshPillai现在我明白了。awk会压缩开头的文本,这样所有的空列都会被移动。若要使其正常工作,请用一些文本(0,-等)填充空格。您忘记了OFS的
+1正在挂起…:)哦,@Kent,我还以为你已经上周末了呢:)谢谢你指出这一点,这样的输出效果更好!有人告诉我,无论我们在哪里,太阳都会在下午6点出现:D@fedorqui解决方案无法正常工作。对于空值,列值向左移动。第2排和第3排在您的solution@SantoshPillai现在我明白了。awk会压缩开头的文本,这样所有的空列都会被移动。要使其工作,请用一些文本(0,-等)填充空格。