2

かなり頻繁にgrep、bashシェルの履歴を調べて、古いコマンドやファイルパスなどを見つけます。関心のある履歴番号を特定したら、両側に数行のコンテキストを表示します。つまり、履歴行のサブセットを表示します。例えば:

$ history | grep ifconfig

8408  ifconfig eth0
8572  sudo ifconfig eth0 down

8572行の両側の5行ほどを見たいと思います。明らかに、履歴をページングできる行番号を知っていますlessが、これは非常にばかげているようです。私の知る限り、マンページにもこの情報がないようです。

bashで任意の履歴行を取得する簡単な方法はありますか?

4

6 に答える 6

5

grepの-Cオプションはコンテキストを提供します。試す:

$ history | grep -C 5 ifconfig
于 2009-08-22T16:58:32.073 に答える
4
history | grep -C 5 ifconfig
于 2009-08-22T16:57:38.910 に答える
3

特定の行番号だけを表示したい場合は、次のようなものを使用することもできます

history | head -n 120 | tail -n 5

この例では、116行目から120行目までを印刷しています。

于 2009-08-22T19:14:52.657 に答える
2
history | grep ifconfig -A5 -B5

A=grepによって検出された一致後の行数B=grepによって検出された一致前の行数行数を5から任意の数に変更することもできます。

于 2009-08-22T18:01:01.543 に答える
1

私はタイプする
history | grep " 840"

于 2009-08-22T17:04:19.753 に答える
1

ctrl-rと入力し、次にいくつかの文字を入力します(対話型検索)。詳細はこちら

于 2009-08-22T16:45:38.480 に答える