【问题标题】:Numbering lines awk script编号行 awk 脚本
【发布时间】:2013-12-03 21:57:50
【问题描述】:

如何使用 awk 脚本对以下输入进行编号。

30.67
30.89
31.65
32.23
33.44
34.11
34.34
35.09
36.65
37.30
38.22
39.08
40.55
41.43
41.99
42.21
43.00
44.33
45.50
46.44
47.90
48.09
49.44
49.54
50.76

预期输出将是:

0.67
0.89
1.65
2.23
3.44
4.11
4.34
5.09
6.65
7.30
8.22
9.08
10.55
11.43
11.99
12.21
13.00
14.33
15.50
16.44
17.90
18.09
19.44
19.54
20.76

这些数据是行/记录中的第二个字段

这意味着例如: 第一行看起来像

 a 30.67 b joy 
 b 30.89 x  joey
 ...

和输出:

 a 0.67 b joy 
 b 0.89 x joey

感谢您的帮助。

【问题讨论】:

  • 不是很清楚。给定 XX.YY,它会一直是XX-30.YY吗?

标签: awk


【解决方案1】:

试试这条线:

awk '{$2=sprintf("%.2f",$2-30)}7' file

这处理像30.00 这样的情况,它将输出0.00 而不是0

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 1970-01-01
    • 2021-11-11
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    相关资源
    最近更新 更多