特に仕事でウィンドウズ使っているとunixコマンドを使いたくなることがあります。
そんなの時のために擬似的に似たような動作をする簡易的なpythonプログラムを作っています。
例えばgrep
第1引数の文字列が含まれている行のみ表示するコマンドです。
grep x file
こんな風に使います。
つまり、この場合fileの中身でxが入っている行のみを表示します。
といってもgrepにはもっといろんな機能が付いていますが、簡易版なので、この機能のみを実装してみます。
pythonで書くとかなり簡単に書けます。
import sys
for line in sys.stdin:
if sys.argv[1] in line:
print line.rstrip()
処理が遅いと思うのならばリスト内包表記で
import sys
print '\n'.join( [ line.rstrip() for line in sys.stdin if sys.argv[1] in line ] )
とか書くと少し処理が速くなります。
これをpgrep.pyとかいう名前で保存し、
pgrep.py import pgrep.py
などとコマンドラインで実行すると
文字列importのある行のみ抜き出して表示されます。
いまは作成したプログラムpgrep.pyに対して処理してみましたが、3番目のファイルはテキストならなんでも構いません。
書式は下のとおりです。
pgrep.py [検索文字列] [対象ファイル名]
0 件のコメント:
コメントを投稿