问题标签 [nawk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
727 浏览

bash - nawk 将列添加到每一行

我正在尝试将带有文件名的列添加到每行的末尾。每一行都有一个

Namesurname用空格number隔开,Surname用制表符隔开。

我正在使用此脚本执行此操作,但它不起作用,它仅将文件名添加到行首。

PS操作系统是SunOS。

0 投票
4 回答
94 浏览

regex - Linux:从行中提取和转换属性

如果有一个文件,其行格式如下:

SOME_ATTRIBUTE_1 XYZ; IMPORTANT_ATTRIBUTE_1 1234; SOME_ATTRIBUTE_2 XYZ; IMPORTANT_ATTRIBUTE_2 AB;

现在我想把它转换成下面的形式,两个重要的属性值产生一个新的属性:

JOIN_IMPORTANT_ATTRIBUTE AB1234; SOME_ATTRIBUTE_1 XYZ; IMPORTANT_ATTRIBUTE_1 1234; SOME_ATTRIBUTE_2 XYZ; IMPORTANT_ATTRIBUTE_2 AB;

这可以用 awk 或类似的单线来完成吗?我不知道如何解决这个问题,而不是抓住Java技巧箱。

0 投票
1 回答
867 浏览

linux - Unix 中的 Nawk Commmad

如图所示,我有一个 nawk 命令。谁能解释这个命令应该做什么。

0 投票
1 回答
392 浏览

csv - awk 设置数组中的元素

我有一个大的 .csv 文件要处理,我的元素是这样随机排列的:

xxxxxx,xx, MLOCAL, MREMOTE, 33222, 56, 22/10/2012, 18/10/2012 xxxxxx,xx, MREMOTE, MLOCAL, 33222, 56, 22/10/2012, 18/10/2012 xxxxxx,xx, MLOCAL, 341993, xxxxxx,xx, , , xxxxxx,xx, , , , , , xxxxxx,xx, , , , , , xxxxxx, xx, , ,22/10/2012
MREMOTE935682808/10/2012
LOCALREMOTE193161525322/10/201222/10/2012
REMOTELOCAL186587138366622/10/201222/10/2012
REMOTE118030613419/10/2012

其中字段LOCAL、、REMOTE或显示如下:MLOCALMREMOTE

  1. 当它们成对显示时 ( LOCAL / REMOTE ) 如果第 3 个字段是MLOCAL第 4 个字段是MREMOTE,则第 5第 7 个字段表示 的值和日期MLOCAL第 6第 8 个表示的值和日期MREMOTE
  2. 当它们显示为单个(仅LOCAL或仅REMOTE)时,第 4 和第 5 个字段表示字段 3 的值和日期。

现在,我使用以下方法拆分了这些行:

但是因为我找不到第 3 和第 4 个字段的模式,所以我非常坚持继续为每个数组元素分配 var 名称,以便将它们用于进一步处理。

现在,我尝试使用“case”语句,但不适用于 awk 或 nawk(仅在 gawk 中按预期工作)。我也试过这个:

但它也不能正常工作。

所以,如果你知道如何处理这个问题,我会很感激给我一个提示,以便能够找到一种模式,以便从上面涵盖所有可能的情况。

编辑

我不知道如何感谢您提供的所有帮助。现在,我要做的比我上面写的更复杂,我会尽量简单地描述,否则我会让你们很困惑。我的输出应该如下所示:

NAME, UNIQUE_ID, VOLUME_ALOCATED, MLOCAL_VALUE, MLOCAL_TIMESTMP, MLOCAL_limit, LOCAL_VALUE, LOCAL_TIMESTAMP, LOCAL_limit, MREMOTE_VALUE, MREMOTE_TIMESTAMP, REMOTE_VALUE,REMOTE_TIMESTAMP

(其中MLOCAL_limitand是and orLOCAL_limit之间的减法结果)VOLUME_ALOCATEDMLOCAL_VALUELOCAL_VALUE

因此,在我的输出文件中,字段位置应排列如下: 第 4 个字段= MLOCAL_VALUE第 5 个字段= MLOCAL_TIMESTMP第 7 个字段= LOCAL_VALUE第 8 个字段= LOCAL_TIMESTAMP第 10 个字段= MREMOTE_VALUE第 11 个字段= MREMOTE_TIMESTAMP第 12 个字段= REMOTE_VALUE第 13 个字段=REMOTE_TIMESTAMP

现在,一个例子是这样的:对于以下输入:name, ID, VOLUME_ALLOCATED, MLOCAL, MREMOTE, 33222, 56, 22/10/2012,18/10/2012

name, ID, VOLUME_ALLOCATED, REMOTE, 234455,19/12/2012

我应该处理这一行,输出应该是这样的:

name, ID, VOLUME_ALLOCATED, 33222, 22/10/2012, MLOCAL_LIMIT, , , , 56, 18/10/2012, ,

7th, 8th, 9th, 12th, 和13th字段为空,因为没有与以下内容相关的信息:LOCAL_VALUE, LOCAL_TIMESTAMP, LOCAL_limit, REMOTE_VALUE, 和REMOTE_TIMESTAMP

或者

name, ID, VOLUME_ALLOCATED, , , , , , , , , 234455,9/12/2012

4th, 5th, 6th, 7th, 8th, 9th,10th和 , 11th, 字段应该是空值,因为没有关于:MLOCAL_VALUE, MLOCAL_TIMESTAMP, MLOCAL_LIMIT, LOCAL_VALUE, LOCAL_TIMESTAMP, LOCAL_LIMIT, MREMOTE_VALUE, 的信息MREMOTE_TIMESTAMP

VOLUME_ALLOCATEDID根据之前在脚本中处理的字段从其他 csv 文件(称为“info.csv”)中检索,例如:

信息.csv

VOLUME_ALLOCATED, ID, CLIENT 5242881, 64, subscriber 567743, 24,visitor

数据.csv

NAME, 64, MLOCAL, 341993, 23/10/2012 NAME, 24, LOCAL$ REMOTE, 2347$ 4324, 19/12/2012$18/12/2012

现在,我的代码是这样的:

在这里我被卡住了,我找不到设置其余字段的正确方法,因为我不知道如何处理第 3 和第 4 字段。

对不起,如果我让你很困惑,但这是我现在的情况。谢谢

0 投票
4 回答
131 浏览

linux - 在 Unix 中分离 awk 输入

我正在尝试编写一个 Awk 程序,它需要两个由 / 分隔的日期,例如 2013 年 3 月 22 日,并将它们分成三个单独的数字,以便我可以分别使用 3、22 和 2013。

我希望程序被称为

到目前为止,我有:

这将接受两个日期,但我不知道如何分解它们。另外,上面的程序必须用 nawk 调用,用 awk 表示它无法打开 2/23/2013。

提前致谢。

0 投票
4 回答
2220 浏览

json - 在没有尾随分隔符的情况下分隔 AWK 中的输出记录

我有以下记录:

我想用 AWK 把它转换成 JSON。使用此代码:

给我这个:

问题是最后一个数据行上的尾随逗号。它使 JSON 输出不可接受。我怎样才能得到这个输出:

0 投票
1 回答
1245 浏览

ksh - 使用 awk 读取文件的每一行并存储到数组中

我正在 Sun Solaris 中研究 ksh。我有一个文件,每行只有一个单词作为作业名称。想要从文件中读取所有作业并按照给定的顺序一一执行。如何在 ksh 中做到这一点。如果在命令提示符下触发以下代码,则可以正常工作。当我尝试通过 shell 脚本运行它时,它给出了错误。

错误:

0 投票
1 回答
70 浏览

html - 将文本附加到 html 的 Nawk 脚本

所以,我已经在自己的事情上工作了一个星期,但一无所获。我正在参加一个非常先进的 CIS 课程,到目前为止我做得很好,但到最后我正在处理我还没有学过的东西。我应该等几个学期才能讲这门课,因为我对我现在正在做的事情毫无准备。我的主要问题是不了解 HTML(我从来没有理由学习它)。

我有一个我发现需要使用的 nawk 脚本模板的任何方式。它源自颜色生成器脚本,如下所示:

正如你在第 12 行和第 13 行看到的,我分别添加了 $first $last 和 $username。我这样做对吗。因为我不懂 HTML,所以每次看它时,都会把我的 !@#$ 搞糊涂。

以下应该是输出:

以下是 HTML 表格应该是什么样子的示例:

有人可以帮帮我吗?一个星期以来,我一直在尝试自己解决这个问题。

0 投票
1 回答
48 浏览

unix - 试图从nawk脚本中的名字中获取第一个字母到html

为什么第 17 行不起作用(在代码中注释)?:

我可以在第 17 行写这样的声明吗?我试图得到名字的第一个字母。

0 投票
1 回答
33 浏览

html - 来自 Nawk 脚本的 HTML 表输出错误

$3是第三列,.txt其中代表我的电子邮件地址列。为什么输出以下语句"$3"而不是电子邮件地址?:

我处于静止状态。