【发布时间】:2019-04-11 13:38:55
【问题描述】:
我有一个包含以下内容的文件(测试)需要编辑。
测试
foo:
bar:hello
我目前正在使用 sed 来匹配一个模式并将一个字符串附加到行尾。
sed -ie "/^bar/ s/$/,there" test
这给了我预期的输出,即
foo:
bar:hello,there
但问题是,当行不以: 结尾时,逗号 (,) 应该在那里。否则会变成这样:
sed -ie "/^foo/ s/$/,there" test
输出:
foo:,there
bar:hello
要求:
foo:there
bar:hello
那么是否可以通过任何方式检查模式,在匹配后检查行的最后一个字符,根据最后一个字符,在行尾附加一个字符串。
P.S.:我无法安装单独的包。
【问题讨论】:
-
如果你想将“there”附加到“foo:”行,那为什么还要检查“bar”呢?
-
“foo”或“bar”作为输入。所以我在一个变量中接收它并在 sed 中使用该变量。