2016-04-01 21 views
0

コマンドgrep -n blink ~/.bash_historyは、blinkを含むすべての行を出力します。私はのみ行番号を出力し、Pythonでhistory -d linenum
上行番号を実行コマンドが必要になります。履歴から特定の行番号を削除する

#list generated from command 
linenumbers = [1,2,3,4,5] 
for count in range(linenumbers): 
    os.system("history -d {}".format(count)) 

私はこれをどのように行うのですか? bashで

+0

'〜/ .bash_history'の数字だけを' blink'を含む行に使いたいのですか? –

+0

あなたは1つの技術を選択し、それに固執する必要があります。 「回答はbashまたはPythonにある」とはあまり役に立ちません。私はPythonにそれを編集しました、それはあなたの例が何であるからです... – Carpetsmoker

+0

@Eric Renouf correct |大丈夫です。私が見つけた唯一の簡単な解決策はbashでした。 – XXX

答えて

2

for offset in $(history | awk '/blink/ {print $1}' | tac) 
do 
    history -d $offset 
done 

あなたはhistoryコマンド、grepと行番号を生成する必要はありませんから直接オフセットを得ることができます。逆に行を削除する必要があります(したがって、tacを使用してください)。削除されているコマンドに続くコマンドのオフセットがシフトダウンされるためです。

関連する問題