gpt4 book ai didi

regex - awk 删除数字后的字符

转载 作者:行者123 更新时间:2023-11-29 09:40:47 25 4
gpt4 key购买 nike

我正在编写一个 AWK 脚本来清理数据流,以便它可用于分析。现在,我有以下问题。

我有一个如下所示的数据流:

56, 2
64, 3
72, 0
80, -1-
88, -3--
96, 1
04, -2-
12, -7----
20, -1-
28, 7
36, 1
44, -3--
52, 3
60, 0
68, 0
76, -3--
84, -5---
92, 1
00, 4
08, 3
16, -2-
24, -3--
32, 1
40, 3

我想删除数字字符后出现的任何破折号,将减号保留在数字前面,这样它看起来像这样:

56, 2
64, 3
72, 0
80, -1
88, -3
96, 1
04, -2
12, -7
20, -1
28, 7
36, 1
44, -3
52, 3
60, 0
68, 0
76, -3
84, -5
92, 1
00, 4
08, 3
16, -2
24, -3
32, 1
40, 3

我知道如何使用 sed (sed 's/-*$//') 来完成此操作,但是如何仅使用 awk 来完成此操作以便我可以在我的脚本中使用它?干杯

最佳答案

一种方法,只需使用 sub():

awk '{ sub(/-+$/, "", $NF); print }' infile

它产生:

56, 2
64, 3
72, 0
80, -1
88, -3
96, 1
04, -2
12, -7
20, -1
28, 7
36, 1
44, -3
52, 3
60, 0
68, 0
76, -3
84, -5
92, 1
00, 4
08, 3
16, -2
24, -3
32, 1
40, 3

关于regex - awk 删除数字后的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com