私は以下を試しました:
history -d $(history | grep "echo.*" |awk '{print $1}')
ただし、履歴からすべてのコマンドを削除するわけではありません。echo
echo
次のように始まるすべてのコマンドを削除したいと思います。
echo "mamam"
echoaaa
echo "hello"
echooooo
答え1
すべての関連項目を削除し$HISTFILE
てから履歴を消去し、変更されたファイルから(再度)読み込むことができます。
sed -i '/^echo/d' "$HISTFILE"
history -c
history -r "$HISTFILE"
もちろん、これは$HISTFILE
古い履歴をロードするために使用されたすべての新しいシェルインスタンスに影響を与えるため、現在のシェルの範囲外です。
答え2
どうですか?
history | cut -b8- | grep -v "^echo" > /tmp/TMP; history -c; history -r /tmp/TMP; rm /tmp/TMP