2014-08-30 135 views
1

我想創建一個函數添加到我的bash_profile文件,以便能夠從歷史記錄中提取命令列表grep給定的單詞和刪除命令的數字。問題是,我可以直接做這樣歷史命令沒有命令編號

$history | grep tar | cut -c 8- 

但是當我把它變成一個功能的.bash_profile這個

function hrep() { 
    history | grep $1 | cut -c 8- 
} 

它沒有考慮到剪切命令。它打印出grepped命令,但不會修剪命令號。

你知道我錯過了什麼嗎? 非常感謝, Juanpe。

+1

我不能與Ubuntu重現此錯誤。輸入以下內容並重試:'bash --norc' – Cyrus 2014-08-30 09:49:52

+0

如果我這樣做了,我沒有加載bash_profile,並且在加載它時關閉了bash會話。我可以從命令行運行它,但問題是當我從它創建一個功能。順便說一下,這是在使用Scientific Linux 5的本地羣集中,當我有機會查看它是否有效時,我會在另一臺機器上嘗試。 – 2014-08-30 10:24:41

+1

對我來說,這工作正常,當我添加到我的.bashrc – ShaneQful 2014-08-30 12:08:41

回答

0

我寧願使用正則表達式而不是告訴剪切刪除特定數量的字符。你的歷史可能遠遠超過一千行。
(通常是正則表達式應該是正確的)

hrep() { 
    history | grep $1 | sed 's/^[ ]*[0-9]*[ ]*//g' 
}