使用awk将制表符分隔的文本文件中的两列相乘
如何使用awk将列col23乘以10和col24乘以20? 谢谢你看这个:) 我试过了,但似乎不起作用使用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-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,-等)填充空格。