小编Shu*_*hou的帖子

当输入中存在正斜杠 (/) 时,gawk 中的算术(除法) - 也许有多个字段分隔符?

我有一个文件,其行类似于以下内容(不幸的是,这是另一个软件输出结果的唯一格式):

1 2 3 5/2 7 17/5 9 10/3 15

我需要将其替换为以下行:

1 2 3 2.5 7 3.4 9 3.33 15

换句话说,我希望 GAWK 进行除法并将分数(有理数)替换 5/2, 17/5 and 10/3 为十进制值 2.5, 3.4 and 3.33.

我尝试了多个 FS(字段分隔符),但没有任何效果。使用 GAWK 执行此操作的好方法是什么?谢谢。

slash (/)如果我将 改为a会更容易吗colon (:)

我为什么要问这个问题?我试图搜索是否/是 .. 的子字符串$i(如果答案是肯定的,那么我会将split()$i 分成两部分,然后进行除法)。

我在其他地方读到,为了检查字段是否以$i开头F,他们使用if ($i~/^F/)-- 所以我尝试了if ($i~///),然后if ($i~/"/"/),然后if ($i~/\//) (escaping / with a \)等等。这些都不起作用。所以我认为/是 Awk …

awk

3
推荐指数
1
解决办法
407
查看次数

标签 统计

awk ×1