问题标签 [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.
bash - nawk 将列添加到每一行
我正在尝试将带有文件名的列添加到每行的末尾。每一行都有一个
Name
和surname
用空格number
隔开,Surname
用制表符隔开。
我正在使用此脚本执行此操作,但它不起作用,它仅将文件名添加到行首。
PS操作系统是SunOS。
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技巧箱。
linux - Unix 中的 Nawk Commmad
如图所示,我有一个 nawk 命令。谁能解释这个命令应该做什么。
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
MREMOTE
9356828
08/10/2012
LOCAL
REMOTE
19316
15253
22/10/2012
22/10/2012
REMOTE
LOCAL
1865871
383666
22/10/2012
22/10/2012
REMOTE
1180306134
19/10/2012
其中字段LOCAL
、、REMOTE
或显示如下:MLOCAL
MREMOTE
- 当它们成对显示时 ( LOCAL / REMOTE ) 如果第 3 个字段是
MLOCAL
,第 4 个字段是MREMOTE
,则第 5和第 7 个字段表示 的值和日期MLOCAL
,第 6和第 8 个表示的值和日期MREMOTE
- 当它们显示为单个(仅
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_limit
and是and orLOCAL_limit
之间的减法结果)VOLUME_ALOCATED
MLOCAL_VALUE
LOCAL_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_ALLOCATED
ID
根据之前在脚本中处理的字段从其他 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 字段。
对不起,如果我让你很困惑,但这是我现在的情况。谢谢
linux - 在 Unix 中分离 awk 输入
我正在尝试编写一个 Awk 程序,它需要两个由 / 分隔的日期,例如 2013 年 3 月 22 日,并将它们分成三个单独的数字,以便我可以分别使用 3、22 和 2013。
我希望程序被称为
到目前为止,我有:
这将接受两个日期,但我不知道如何分解它们。另外,上面的程序必须用 nawk 调用,用 awk 表示它无法打开 2/23/2013。
提前致谢。
json - 在没有尾随分隔符的情况下分隔 AWK 中的输出记录
我有以下记录:
我想用 AWK 把它转换成 JSON。使用此代码:
给我这个:
问题是最后一个数据行上的尾随逗号。它使 JSON 输出不可接受。我怎样才能得到这个输出:
ksh - 使用 awk 读取文件的每一行并存储到数组中
我正在 Sun Solaris 中研究 ksh。我有一个文件,每行只有一个单词作为作业名称。想要从文件中读取所有作业并按照给定的顺序一一执行。如何在 ksh 中做到这一点。如果在命令提示符下触发以下代码,则可以正常工作。当我尝试通过 shell 脚本运行它时,它给出了错误。
错误:
html - 将文本附加到 html 的 Nawk 脚本
所以,我已经在自己的事情上工作了一个星期,但一无所获。我正在参加一个非常先进的 CIS 课程,到目前为止我做得很好,但到最后我正在处理我还没有学过的东西。我应该等几个学期才能讲这门课,因为我对我现在正在做的事情毫无准备。我的主要问题是不了解 HTML(我从来没有理由学习它)。
我有一个我发现需要使用的 nawk 脚本模板的任何方式。它源自颜色生成器脚本,如下所示:
正如你在第 12 行和第 13 行看到的,我分别添加了 $first $last 和 $username。我这样做对吗。因为我不懂 HTML,所以每次看它时,都会把我的 !@#$ 搞糊涂。
以下应该是输出:
以下是 HTML 表格应该是什么样子的示例:
有人可以帮帮我吗?一个星期以来,我一直在尝试自己解决这个问题。
unix - 试图从nawk脚本中的名字中获取第一个字母到html
为什么第 17 行不起作用(在代码中注释)?:
我可以在第 17 行写这样的声明吗?我试图得到名字的第一个字母。
html - 来自 Nawk 脚本的 HTML 表输出错误
$3
是第三列,.txt
其中代表我的电子邮件地址列。为什么输出以下语句"$3"
而不是电子邮件地址?:
我处于静止状态。