1

我如何从 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
4

3 回答 3

4

修改器将p打印任何历史扩展而不是执行它。

!78:p
于 2013-11-08T21:00:12.017 回答
1
history | sed -n "`78 {s/^ *[0-9]\{1,\}[[:space:]]*\([^ ]\)/\1/p;q;}"

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

于 2013-11-11T12:17:49.883 回答
0

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

!78
于 2013-11-08T16:20:13.200 回答