所以花了几天时间记住如何编写各种Unix工具,比如sed,awk和grep,学习一些比较新的工具,比如curl(我知道,对吧?我甚至第一次打破了gcc)也许是20年,但它很快就会回来了)并且在构建一个用于AWS EC2上的Elasticsearch的小JSON数据库方面取得了很好的进展.
但我刚刚遇到批量索引的问题,因为ES _bulk端点要求文件基本上是JSON串行字符串,每个字符串上都有\n个终止符; 我使用各种Web API和文件预处理/处理构建的内容非常简单,即人类可读.
是否有一个简单的shell脚本方法可以将所有漂亮的JSON简单地连接成字符串,而无需加载某些Java库或其他什么?我可以在预处理过程中将标记添加到基本文件中,以标记所需的\n中断,如果这有助于解析,但如果有人对工具集有提示,我将不胜感激,因为我离这个小小的一步远离加入该项目.我有一种感觉,那里有脚本,我知道有一些库,但到目前为止我还没有找到任何简单的命令行工具来进行不合适的打印.
非常感谢任何提示,
干杯
希德
我在 BigQuery 中有一个名为 events 的表,其中有一列名为“entitlement”。该列可以具有“lapb”、“lacf”、“lasg”、“laxy”、“laza”等值。它也可以具有“null”或“”或其他我不知道的值。它每行只有 1 个给定值,因此它不是值列表。例如,这里是一些示例数据:
name entitlement date
alice laxy 01072017
bob null 01082018
charlie lapb 01092017
daniel lacf 01092017
Run Code Online (Sandbox Code Playgroud)
ETC
如何编写查询以便检查权利值是否不在值列表中?
这就是我目前正在做的。我为每一个添加了一个额外的“和权利!=”子句。
SELECT *
FROM events
WHERE entitlement != 'lapb' and entitlement != 'lacf'
and entitlement != 'lasg' and entitlement != 'laxy'
and entitlement != 'laza' and entitlement is not null
order by logtime desc
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)
我尝试执行以下操作:
SELECT *
FROM events
WHERE entitlement is not in ['labp', 'lpaf']
order by logtime desc
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
查询失败错误:在第 …
当我在RedHat 7.4 x64终端上执行以下命令时,(只需启用tomcat.service)
无法执行操作:错误消息
您有什么想法或建议我可以进一步检查吗?
谢谢。
我有一台服务器,我已为其分配了外部 IP 地址,并通过防火墙进行 NAT。然后我与我的域名托管服务商进行了分配,并创建了一个指向该外部的 DNS 名称。从外部看一切都很好,如果我指向该服务器的本地 IP 地址,从内部看一切都很好。
我的问题是,服务器上的软件无法访问网络外部的某些 Java 功能,因为本地 IP 地址被硬编码到软件中,并且 Java 不会读取内部和外部 IP 地址。所以该软件的技术支持说我们可以在软件中输入一个 DNS 名称。
因此,我进入域控制器的 DNS 并输入 subdomain.domain.com 的主机 (A) 条目和本地 IP 地址。嗯,它不能正确解析,因为 DNS 将我输入的条目设置为 subdomain.domain.com.local,所以 Java 再次无法正确读取它。如何让 DNS 将此条目正确读取为 subdomain.domain.com?
我是 jq 的新手,所以如果这不是 jq 问题或 json 问题,请指出正确的方向。我不确定正确的术语,所以我很难正确地阐明问题。
我正在使用 curl 来提取一些我想过滤掉具有特定值的键的 json。以下是一些示例 json:
{
"id": "593f468c81aaa30001960e16",
"name": "Name 1",
"channels": [
"593f38398481bc00019632e5"
],
"geofenceProfileId": null
}
{
"id": "58e464585180ac000a748b57",
"name": "Name 2",
"channels": [
"58b480097f04f20007f3cdca",
"580ea26616de060006000001"
],
"geofenceProfileId": null
}
{
"id": "58b4d6db7f04f20007f3cdd2",
"name": "Name 3",
"channels": [
"58b8a25cf9f6e19cf671872f"
],
"geofenceProfileId": "57f53018271c810006000001"
}
Run Code Online (Sandbox Code Playgroud)
当我运行以下命令时:
curl -X GET -H 'authorization: Basic somestring=' "https://myserver/myjson" |
jq '.[] | {id: .id, name: .name, channels: .channels, geofenceProfileId: .geofenceProfileId}' |
jq '.[] | select(.channels == 58b8a25cf9f6e19cf671872f)' …Run Code Online (Sandbox Code Playgroud)