Bashレコードを消去する(最後のn行を除く)

Bashレコードを消去する(最後のn行を除く)

bash レコード (ターミナル履歴/コマンド行履歴) の最後のエントリを消去するには、次のコマンドがあります。私のUbuntu 14.04 Trusty Tahr。

sed -i '$d' ~/.bash_history

しかし、最後の項目を維持し、残りを削除したいと思います1,2...n。どうすればいいですか?

sed//またはhistory他のコマンドを使用できますawk。要件が満たされる限り、問題はありません。

答え1

最後のN行を維持するには、次のように使用しますtail(例:最後の20行)。

tail -n 20 "$HISTFILE" > ff && mv ff "$HISTFILE"

HISTFILE名前を変更しても、この変数は常に履歴ファイルを指すため、この変数を使用します。

関連情報