我有一个.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正则表达式?
我也试过这个:(它失败了,因为改变了所有属性) …
string1
请参阅和的陈述string2
以及他们的len1
和len2
。该代码是使用GNU Assembler的 x86_64 汇编,传递参数来调用Linux x86_64 系统调用。当我执行时,它奇怪地生成一个无意义的值()。然而,当我它工作正常。前者作为 的参数,后者作为 的参数。mov len1, %rdx
8390045993705406470
mov len1, %rdi
mov
sys_write
sys_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)