2011-11-22 19 views
5

端末の履歴からコマンドを再利用できるかどうかを知りたいですが、変更されたバージョンです。ここでは例です:端末の履歴からコマンドを検索して置き換えます。

$ filter_script file2 > output_file2 
$ # ... 
# now run the same command, but replace '2' with '4' 
$ filter_script file4 > output_file4 

は、これは非常に単純な例であり、もちろん私は単に履歴からのコマンドにアクセスし、手動で2つの2 Sを置き換えることができますが、よりエレガントな方法はありますか?

ありがとうございました!

答えて

12

それはあなたが交換したいされているものの唯一インスタンスがある場合、bash(1)は最初csh(1)で導入された使いやすい機能を持っています

^old^new 

newoldの最初のインスタンスを置き換えます:

$ filter_script file2 > output_file2 
$ ^2^4 
filter_script file4 > output_file2 

すべてと入力する必要がある場合は、入力を増やす必要があります。

$ filter_script file2 > output_file2 
$ !:gs/2/4/ 
filter_script file4 > output_file4 

gは、コマンドライン上のグローバル交換を指定します。 !は、履歴からの行を指します。これは、直前のコマンドよりも歴史的に後ろからコマンドを引き出したい場合に、より具体的になります。 Event Designatorsbash(1)のセクションを参照してください。

+0

偉大な、魅力のように動作します - ありがとうたくさん:) – canavanin

+1

気の利いたものは、アップ票を持っています! – plundra

+0

うわー本当にクールだ。 –

関連する問題