Bash履歴から長いコマンドを削除する方法

Bash履歴から長いコマンドを削除する方法

bash履歴から長すぎるコマンドを削除する簡単な方法(bashコマンドなど)はありますか?一部の長いコマンドはデフォルトでレンダリングされるため、CTRL使用Rできません。 (理想的には、今後も長すぎるコマンドを履歴に保存しないことをお勧めします。)

ベストアンサー1

次のように bash 関数を作成できます。

myhistory(){
   history -w
   gawk -i inplace '{if(length($0)<60)print}' "$HISTFILE"
   history -c
   history -r
}

メモリ内の履歴をファイルに保存したいときに実行し、 history -wgnuを使用してファイルをawk編集し、制限(ここでは60)より短い行だけを書き換えます。メモリの記録を消去し、-cファイルからメモリに戻ります-r

入力されたすべてのコマンドに対してこれを行うには、すべてのプロンプトの前に呼び出されるように設定できますPROMPT_COMMAND='myhistory'

おすすめ記事