Jat*_*ani 5 shell shell-script
我有一个keyvalue.txt包含内容的文本文件:
one=abc
two=def
three=ghi
four=jkl
five=mno
six=pqr
Run Code Online (Sandbox Code Playgroud)
现在,我想附加xyz到three将成为的值
three=ghixyz
Run Code Online (Sandbox Code Playgroud)
生成的文件内容应该是:
one=abc
two=def
three=ghixyz
four=jkl
five=mno
six=pqr
Run Code Online (Sandbox Code Playgroud)
有没有办法在shell脚本中做到这一点?
有几种方法;如用sed:
sed -i 's/^RELEASESTATUS=.*/&xyz/' keyvalue.txt
Run Code Online (Sandbox Code Playgroud)
这将查找以 开头的行RELEASESTATUS=,匹配整行(感谢.*),并将这些行替换为 ( &) 后跟的行的内容xyz。
类似于Stephen's answer,但执行方式略有不同:
sed -i '/^RELEASESTATUS=/s/$/xyz/' keyvalue.txt
Run Code Online (Sandbox Code Playgroud)
这不是用在末尾添加一些文本的自身副本替换整行,而是首先定位正确的行(RELEASESTATUS=位于最开始的行),然后在该行的末尾替换所需的文本。
这使用了这样一个事实,即替代命令 ( s) in的一般形式sed是
start,end s/pattern/replacement/flags
Run Code Online (Sandbox Code Playgroud)
其中start和end给出了命令应该应用到的行范围,作为开始和结束地址给出(“地址”可以是行号或正则表达式,或偏移量)。使用单个地址时,该命令仅应用于该行(或匹配特定正则表达式的单行)。
| 归档时间: |
|
| 查看次数: |
2415 次 |
| 最近记录: |