小编Chr*_*s F的帖子

如何删除jq输出中的双引号以解析bash中的json文件?

我使用JQ解析一个JSON文件,如这里.但是,字符串值的结果包含预期的"双引号",如下所示:

$ cat json.txt | jq '.name'
"Google"
Run Code Online (Sandbox Code Playgroud)

如何将此管道传输到另一个命令以删除""?所以我明白了

$ cat json.txt | jq '.name' | some_other_command
Google
Run Code Online (Sandbox Code Playgroud)

some_other_command可以用什么?

bash awk sed jq

99
推荐指数
2
解决办法
4万
查看次数

如何在正在运行的Python线程上调用函数

假设我有这个产生线程的类:

import threading
class SomeClass(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        while True:
            pass

    def doSomething(self):
        pass

    def doSomethingElse(self):
        pass
Run Code Online (Sandbox Code Playgroud)

我想要

someClass = SomeClass()
someClass.start()
someClass.doSomething()
someClass.doSomethingElse()
someClass.doSomething()
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我知道我可以在函数内部调用一个函数run(),但这不是我的目标.

python python-2.7

21
推荐指数
1
解决办法
4万
查看次数

如何在Ansible中循环这个词典?

说我有这本词典

war_files:
  server1:
  - file1.war
  - file2.war
  server2:
  - file1.war
  - file2.war
  - file3.war
Run Code Online (Sandbox Code Playgroud)

而现在我只想循环遍历每个项目(键),然后遍历键中的每个项目(值).我这样做了

- name: Loop over the dictionary
  debug: msg="Key={{ item.key }} value={{ item.value }}"
  with_dict: "{{ war_files }}"
Run Code Online (Sandbox Code Playgroud)

我明白了.这当然是正确的,但不是我想要的.

ok: [localhost] => (item={'value': [u'file1.war', u'file2.war'], 'key': u'server1'}) => {
    "item": {
        "key": "server1", 
        "value": [
            "file1.war", 
            "file2.war"
        ]
    }, 
    "msg": "Server=server1, WAR=[u'file1.war', u'file2.war']"
}
ok: [localhost] => (item={'value': [u'file1.war', u'file2.war', u'file3.war'], 'key': u'server2'}) => {
    "item": {
        "key": "server2", 
        "value": [
            "file1.war", 
            "file2.war", 
            "file3.war"
        ]
    }, …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-2.x

18
推荐指数
5
解决办法
3万
查看次数

如何在bash中的文件中的特定行的末尾附加一个字符串

我想在我的hosts文件的某一行的末尾添加一个别名.例如

我有

192.168.1.1    www.address1.com
192.168.1.2    www.address2.com
192.168.1.3    www.address3.com
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像

192.168.1.1    www.address1.com
192.168.1.2    www.address2.com myalias
192.168.1.3    www.address3.com
Run Code Online (Sandbox Code Playgroud)

我想找到包含19.2.68.1.2的行,并在其末尾添加myalias.该行不一定是文件中的第二行,就像我在这里看到的那样.它可能在任何地方.

bash awk sed

16
推荐指数
1
解决办法
5万
查看次数

如何在Ansible的blockinfile中的块开头添加空格?

我发现了这个blockinfile问题,用户建议在"|"之后添加一个数字 在"块:|" 行,但给出语法错误.基本上,我想使用blockinfile模块在文件中添加一个行块,但我希望块在文件中缩进6个空格.这是任务

- name: Added a block of lines in the file
  blockinfile:
  dest: /path/some_file.yml
  insertafter: 'authc:'
  block: |
    line0
      line1
      line2
      line3
        line4
Run Code Online (Sandbox Code Playgroud)

我预计

  authc:
    line0
      line1
      line2
      line3
        line4
Run Code Online (Sandbox Code Playgroud)

但得到

  authc:
line0
  line1
  line2
  line3
    line4
Run Code Online (Sandbox Code Playgroud)

在行的开头添加空格不会这样做.我怎么能做到这一点?

ansible ansible-2.x

14
推荐指数
3
解决办法
9114
查看次数

如何使用带有传入变量的 terraform import ?

我正在学习 terraform,并希望使用该工具设置 AWS 基础设施。

我们有 3 个 AWS 环境:沙箱、暂存和生产,并且拥有支持这些环境的现有基础设施。例如,我们为每个环境有 3 个独立的 VPC。

我想terraform import根据我尝试设置的环境来导入这些资源的状态。所以我本质上想这样做,虽然我知道这在语法上不正确,但你明白了。

$ terraform import aws_vpc.my_vpc -var 'environment=sandbox'
Run Code Online (Sandbox Code Playgroud)

因此我的模块设置如下

vpc/main.tf
-----------
provider "aws" {
  region = "us-east-1"
}
resource "aws_vpc" "my_vpc" {
  cidr_block = ""
}

vpc/variables.tf
----------------
variable "environment" {
  type map = map(string)
  default {
    sandbox    = "vpc-1234"
    staging    = "vpc-2345"
    production = "vpc-3456"
  }
}
Run Code Online (Sandbox Code Playgroud)

所以这意味着我本质上想做

$ terraform import aws_vpc.my_vpc vpc-1234
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目标?

terraform terraform-provider-aws

12
推荐指数
2
解决办法
2万
查看次数

如何在PowerCLI中没有提示的情况下运行disconnect-viserver

如何在使用以下cmdlet断开与PowerCLI中的服务器的连接时禁用提示?帮助文件显示了一个-Confirm选项,我没有使用它,所以我推断,如果没有它,应该没有提示,但我仍然会收到提示?

disconnect-viserver -server MyServer

谢谢

vmware powercli

10
推荐指数
1
解决办法
2万
查看次数

在Chef食谱中编译时间与运行时间

我有以下(简化)食谱称为java,当然要安装Java.

文件食谱/ default.rb

include_recipe "install_java"
Run Code Online (Sandbox Code Playgroud)

文件食谱/ install_java.rb

# Install RPM from yum repo via yum_install library function
yum_install("jdk1.7.0_51")

# List the directories in /usr/java
jdk_dir = `ls -ld /usr/java/jdk1.* | sort | tail -1`
if jdk_dir.empty?
  raise "Missing JDK installation"
end
Run Code Online (Sandbox Code Playgroud)

当我通过"chef-client -o recipe [java]"运行食谱时

Synchronizing Cookbooks:
  - java
Compiling Cookbooks...
ls: /usr/java/jdk1.*: No such file or directory
Run Code Online (Sandbox Code Playgroud)

================================================== ========================= /var/chef/cache/cookbooks/java/recipes/default.rb中的配方编译错误===== ================================================== ====================

RuntimeError
------------
Missing JDK installation
Run Code Online (Sandbox Code Playgroud)

似乎没有调用yum_install()函数.但是,如果我修改install_java.rb配方就可以了

# Install RPM from yum repo via yum_install library function
yum_install("jdk1.7.0_51") …
Run Code Online (Sandbox Code Playgroud)

chef-infra

9
推荐指数
2
解决办法
9045
查看次数

如何使用jq从数组中的每个对象中提取字段?

我执行了一个cURL请求来获取Gitlab服务器中的所有用户,就像这样.

$ curl -H "Private-Token: a;sldkfja;slkdfj" https://gitlab.domain.com/api/v3/users?active=true > my_file.json
Run Code Online (Sandbox Code Playgroud)

和(部分)my_file.json看起来像:

[
  {
    'username' : 'jdoe',
    'name' : 'John Doe',
    ...
  },
  {
    'username' : 'jadoe',
    'name' : 'Jane Doe',
    ...
  }
]
Run Code Online (Sandbox Code Playgroud)

我存储了响应my_file.json.如何使用jq获取所有username值?

$ cat my_file.json | jq -r 'what to put here?'
Run Code Online (Sandbox Code Playgroud)

json jq

9
推荐指数
1
解决办法
3472
查看次数

如何在pom文件中的rpm映射中排除目录?

我有一个创建RPM神器一个POM文件和RPM安装/tmp/some_script.sh/etc/init.d/some_script.

它确实实现了这一点,但它也尝试在安装/etc/init.d之前安装/etc/init.d/some_script.换句话说,如果我跑:

rpm -qlp my_rpm.rpm
Run Code Online (Sandbox Code Playgroud)

我明白了:

/etc/init.d
/etc/init.d/some_script
.....
Run Code Online (Sandbox Code Playgroud)

我怎么强迫它不安装/etc/init.d


这是相关的配置:

<mapping>
    <directory>/etc/init.d</directory>
    <username>root</username>
    <groupname>root</groupname>
    <sources>
        <source>
            <location>/tmp/some_script.sh</location>
            <destination>some_script</destination>
        </source>
    </sources>
</mapping>
Run Code Online (Sandbox Code Playgroud)

maven-plugin maven-3

8
推荐指数
1
解决办法
4089
查看次数