从历史记录中删除特定的行号

时间:2016-04-01 00:37:26

标签: python

命令grep -n blink ~/.bash_history输出包含blink的所有行。我需要一个输出行号的命令,并在history -d linenum上执行行号 在python:

#list generated from command
linenumbers = [1,2,3,4,5]
for count in range(linenumbers):
   os.system("history -d {}".format(count))

我该怎么做?

1 个答案:

答案 0 :(得分:2)

在bash中:

for offset in $(history | awk '/blink/ {print $1}' | tac)
do
    history -d $offset
done

您可以直接从history命令获取偏移量,无需使用grep生成行号。您还需要反向删除行(因此使用tac),因为删除后的命令的偏移量会向下移动。