gpt4 book ai didi

linux - 如何使用 ed 在命令的输出中附加一行

转载 作者:行者123 更新时间:2023-12-03 09:58:40 27 4
gpt4 key购买 nike

我正在 Linux 中编写一个 bourne shell 脚本,我正在使用 ed 将文本附加到文件的末尾。
我必须使用 ed 来完成这项任务。

我需要附加的文字看起来像这样

Modified on: current_date



其中 current_date 是 date 命令的输出

我使用的代码是这样的:
ed -s $arg << END
a
Modified on: !date
.
w $arg
q
END

显然,这只会放置字符串“!date”而不是 date 命令的输出。

实现这一目标的最佳方法是什么?

到目前为止,我已经尝试使用命令 '(.,.)s/RE/REPLACEMENT/'、x 和 j 无济于事,而且我在信息中没有看到可以执行此操作的命令ed 的页面。

最佳答案

就像你在扩张$arg在脚本中,因此您可以扩展运行 date 的命令替换.

ed -s $arg <<END
a
Modified on: $(date)
.
w $arg
q
END

我想建议类似的东西
ed -s $arg <<END
r !date +'Modified on \%F'
w $arg
q
END

以及(用任何格式字符串替换 %F 复制默认输出格式),但我似乎无法完全正确。反斜杠防止 ed从更换 %使用当前文件名,但反斜杠也保留在输出中。我不知道如何克服它。

关于linux - 如何使用 ed 在命令的输出中附加一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60123108/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com