我的历史记录中有这样的命令(Linux bash shell):
1119 for dir in `ls -d MyMod.*`; \
do echo $dir; \
svn copy --parents $dir $REPO/tags/MyMod_20101115/$dir -m"MyMod tag for 20101115"; \
done
其中1119是命令编号。
(请注意,该命令实际上全部在一行中,并且不包含任何\字符。我只是将它们放入以使其适合页面)
您是否可以使用单行从20101115修改上述内容到20101118(代表今天日期的标记)。显然我们可以创建一个脚本来执行此操作。
这不是关于SVN的问题。上面的示例是一个SVN示例,但问题的目的是知道如何进行替换,特别是考虑到它在历史记录中并使用for。我们尝试使用与sed混合的echo!1119并且没有得到理想的结果。
答案 0 :(得分:2)
!1119:gs/20101115/20101118
请参阅bash手册中的“历史记录扩展”
答案 1 :(得分:1)
tail +1119 ~/.bash_history | head -1 | sed -e "s/20101115/20101118/g"
或
history | tail +1119 | head -1 | awk -F" " '{print $3 $4}' | sed -e "s/$OLD/$NEW/g"
答案 2 :(得分:1)
fc -s 20101115=20101118 1119