- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 bash 脚本来将各种 LDAP 查询处理成管道分隔文件。一些结果记录不包括所有属性,并且每条记录的数据不以每条记录的相同属性顺序返回。我编写了脚本以确保所有记录都具有 4 个必要的属性,现在我正在尝试使用 awk 对输出记录的字段重新排序以匹配既定顺序。下面是我希望处理的一组示例记录,其中第一条记录代表所需的顺序/列标题。
cn: User ID
displayName: Display Name
LastLoginTime: Last Login
ExpirationDate: Exp Date
cn: mf_mdsa
displayName: NONE
ExpirationDate: 00000000000000
LastLoginTime: 20201220212738
displayName: NONE
cn: mf_cs
ExpirationDate: 00000000000000
LastLoginTime: 20201220212704
displayName: NONE
ExpirationDate: 00000000000000
LastLoginTime: 20181009205555
cn: OPERATOR
ExpirationDate: 00000000000000
displayName: HENNIE VAN DEVENTER
LastLoginTime: 20181030201447
cn: hvdevent
cn: A0S
displayName: LARA EVERWINE
ExpirationDate: 20190612001951
LastLoginTime: 20190313182136
cn: SODS822
ExpirationDate: 00000000000000
displayName: JAMES SIMS
LastLoginTime: 20210104000757
我正在调用一个 awk 脚本并输出到一个文件
BEGIN {FS=": "; OFS="|"}
$1 == "cn" {cn = $2}
$1 == "displayName" {displayName = $2}
$1 == "LastLoginTime" {LastLoginTime = $2}
$1 == "ExpirationDate" {
print cn,displayName,LastLoginTime,$2}
虽然所需的重新排序似乎正在发生,但一个记录中的字段值正在渗透到下一个记录中。我假设它与如何将字段标签和值添加到变量以提供打印有关,但我无法弄清楚如何在移动到下一个之前正确处理每条记录
User ID|Display Name|Last Login|Exp Date
mf_mdsa|NONE|Last Login|00000000000000
mf_cs|NONE|20201220212738|00000000000000
mf_cs|NONE|20201220212704|00000000000000
OPERATOR|NONE|20181009205555|00000000000000
A0S|LARA EVERWINE|20181030201447|20190612001951
SODS822|LARA EVERWINE|20190313182136|00000000000000
SODS822|JAMES SIMS|20190313182136|00000000000000
最佳答案
由于每组字段的顺序不同,您应该仅使用条件 !NF
在空行中写入完整记录(假设每 4 行后有一个换行符,如问题所示) :
cat rec.awk
BEGIN {FS=": "; OFS="|"}
$1 == "cn" {cn = $2}
$1 == "displayName" {displayName = $2}
$1 == "LastLoginTime" {LastLoginTime = $2}
$1 == "ExpirationDate" {expirationDate=$2}
!NF {if (cn != "") print cn,displayName,LastLoginTime,expirationDate; cn=""}
END {if (cn != "") print cn,displayName,LastLoginTime,expirationDate}
然后将其用作:
awk -f rec.awk file
User ID|Display Name|Last Login|Exp Date
mf_mdsa|NONE|20201220212738|00000000000000
mf_cs|NONE|20201220212704|00000000000000
OPERATOR|NONE|20181009205555|00000000000000
hvdevent|HENNIE VAN DEVENTER|20181030201447|00000000000000
A0S|LARA EVERWINE|20190313182136|20190612001951
关于awk 按字段名排列记录顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67930718/
是的,我有这个对象,属性代表数据库表列作为属性,但它们都是大写的...如何将对象的所有属性更改为小写,而不将对象转换为将属性从大写转换为小写后的数组?..我想我可以用array_change_key_
是的,我有这个对象,属性代表db表的列作为属性,但是都是大写的...如何把对象的所有属性都变成小写,而不把对象转换成将属性从大写转换为小写后的数组?..我以为我可以用array_change_key_
我目前有一个论坛的 MySQL 帖子表。这包括父帖子和子帖子。如果它是父帖子,则它有一个主题。如果它是子帖子,则包含 parent_id。 例如: TABLE posts +----+--------
我正在添加一个临时表,其中包含第二个查询将使用的文件名列表。我知道文件名可以用于sql注入(inject),所以我想使用准备好的语句。 我的工作查询的简化版本如下所示(例如可能有 50 个文件名):
MySQL中查询所有数据库名和表名 查询所有数据库 ? 1
有人能给我指出正确的方向/网站吗 在 PHP 中有没有一种方法可以通过比较来自 FORM 的字段名称和来自数据库的 column_name 来动态更新特定的表。 例如 INPUT name="emai
获取表名及注释: ? 1
我正在使用 Pyshark 来解析 Wireshark 嗅探器日志,并且在使用“get_field_value”函数检索字段值时,我使用导出的 Json 格式文件(基于 pcapny 文件)来查找字段
我已经从以下 xsd 文件创建了 java bean 人.xsd
我用 MySQL 查询浏览器生成了一个 XML。我正在尝试应用 XSLT 将结果输出到 Word 表中。每条记录一张表。 这是我的 XML 示例 Critique
我有一个 select2 下拉列表,它配置为与远程数据一起使用。但是,我的远程数据源提供的搜索结果格式似乎与 select2 不兼容。远程数据例如是这样的: ... items: [ { value:
最好的 此时我在 python 2.7 中使用 Boto3,我想要的是:我的特定 DynamoDB 表的列标题。 此时,我正在处理一个非常大的 dynamoDB 表,有 80 列和 + 1.00O.0
错误信息 我刚刚试用了 Django-Rest-Framework 3.0 quickstart tutorial (伟大的介绍顺便说一句)并在我自己的系统/表上实现它时遇到了这个错误。 Improp
我正在尝试使用 haystack-whoosh 创建多个查询,我的最后一个问题是通过放置双反斜杠解决的,但现在出现了一个新错误。我在命令提示符中收到以下错误: C:\Users\varun\De
在尝试更新文档时,我在字段 timesToDisplay 中收到上述错误。 MongoDB 版本 2.6.7。 整个模型: msg = { 'name': '',
我是一名优秀的程序员,十分优秀!