从历史中获取特定的一行,bash

时间:2013-11-08 16:20:13

标签: bash sed awk grep

我如何在Bash中获得历史第78行?

就像我知道我可以做的事情:

history | grep 78 | \
awk '{idex=2; while (idex <= NF) { printf $idex " "; idex++} print }' | \
sed '2!d; s/\s\s[0-9]*.*$//'

我想要解决的问题是:

npm uninstall foo; npm install -g foo

3 个答案:

答案 0 :(得分:4)

p修饰符将打印任何历史记录扩展而不是执行它。

!78:p

答案 1 :(得分:1)

history | sed -n "`78 {s/^ *[0-9]\{1,\}[[:space:]]*\([^ ]\)/\1/p;q;}"

如果您绝对需要sed并使用history命令(例如在行的开头添加“#”以保护字符串的任何操作)或在!78:p不起作用的ksh中

答案 2 :(得分:0)

要在bash中从历史记录中获取第78行,请运行以下命令:

!78