小编Lou*_*nco的帖子

sed:更改.yml文件中环境属性的值

我有一个.yml文件,用于配置应用程序的环境属性,如下所示:

env1:
  :prop1: "value1"
  :prop2: "value2"
        ...
  :propn: "valuen"

env2:
  :prop1: "value1"
  :prop2: "value2"
  :prop3: "value3"
        ...
  :propn: "valuen"

    ...

envn:
  :prop1: "value1"
  :prop2: "value2"
        ...
  :propn: "valuen"
Run Code Online (Sandbox Code Playgroud)

我想用以下界面生成一个bash脚本:

$ change_env.sh <environment> <property> <new value> <file.yml>
Run Code Online (Sandbox Code Playgroud)

例:

$ change_env.sh env2 prop3 "this value was changed" file.yml
Run Code Online (Sandbox Code Playgroud)

输出将是:

env1:
  :prop1: "value1"
  :prop2: "value2"
        ...
  :propn: "valuen"

env2:
  :prop1: "value1"
  :prop2: "value2"
  :prop3: "this value was changed"
        ...
  :propn: "valuen"

    ...

envn:
  :prop1: "value1"
  :prop2: "value2"
        ...
  :propn: "valuen"
Run Code Online (Sandbox Code Playgroud)

我找到了这篇文章,但是我不能为我的案子工作. 替换XML元素的值?sed正则表达式?

我也试过这个:(它失败了,因为改变了所有属性) …

regex bash parsing sed

12
推荐指数
1
解决办法
7236
查看次数

在 Linux 中的程序集 x86_64 中获取声明处的字符串长度

string1请参阅和的陈述string2以及他们的len1len2。该代码是使用GNU Assembler的 x86_64 汇编,传递参数来调用Linux x86_64 系统调用。当我执行时,它奇怪地生成一个无意义的值()。然而,当我它工作正常。前者作为 的参数,后者作为 的参数。mov len1, %rdx8390045993705406470mov len1, %rdimovsys_writesys_exit

代码: (foo.s

.section .data
    string1: .string "test\n"
    len1: .long .-string1

    string2: .string "another\n"
    len2: .long .-string2
.section .text
    .globl _start

_start:
# Linux syscall references
# http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/

    # write syscall
    mov $1, %rax # sys_write
    mov $1, %rdi # unsigned int fd: stdout
    lea string1, %rsi # const …
Run Code Online (Sandbox Code Playgroud)

linux string assembly x86-64 data-segment

5
推荐指数
0
解决办法
1876
查看次数

标签 统计

assembly ×1

bash ×1

data-segment ×1

linux ×1

parsing ×1

regex ×1

sed ×1

string ×1

x86-64 ×1