Windows komut satırından bul-değiştir yapmak
Her ne kadar çalışma yaşamımın tamamını Linux ve özgür yazılımlar üzerinde çalışarak geçirme lüksüne sahip olmuş olsam da, bazı kurumlarda Windows duvarına toslamadan duramıyorum.
Son iki günde atmadığım takla kalmadı. En son sanırım lise yıllarımdan beri ilk defa binary dosya düzenledim elle. Son geldiğimiz noktada ise bir dizin ve alt dizinlerinde belirli bir metin dosyasında bul/değiştir yapmamız gerekiyordu.
Linux kullananlar için kulağa çok kolay geliyor değil mi? find ve sed’i beraber çalıştırır hayatına bakarsın. Windows’ta böyle bir araç yok hazırda. Önce Linux kafası düşünmeyeyim deyip, İnternet’te benzer araçlar baktım. Bir tanesi .NET framework kurmaya kalktı, öbürü alt dizinlere inmedi derken kendimizi find, sed, vs kurarken bulduk fakat USB’de taşınabilir olması için bir sürü dll koymamız gerekecekti.
Son bir şansımı daha deneyip arama motoru turlarken nihayet Fart’a rastladım. Tam olarak istediğim işi yapıyordu, basit bir programdı, herhangi bir bağımlılığı yoktu, ufacık bişidi. Linux’taki rpl aracına benzettim.
Find And Replace Text v1.99b by Lionello Lunesu
Usage: FART [options] [--] [,...] [find_string] [replace_string]
Options:
-h, --help Show this help message (ignores other options)
-q, --quiet Suppress output to stdio / stderr
-V, --verbose Show more information
-r, --recursive Process sub-folders recursively
-c, --count Only show filenames, match counts and totals
-i, --ignore-case Case insensitive text comparison
-v, --invert Print lines NOT containing the find string
-n, --line-number Print line number before each line (1-based)
-w, --word Match whole word (uses C syntax, like grep)
-f, --filename Find (and replace) filename instead of contents
-B, --binary Also search (and replace) in binary files (CAUTION)
-C, --c-style Allow C-style extended characters (\xFF\0\t\n\r\\ etc.)
--cvs Skip cvs dirs; execute "cvs edit" before changing files
--svn Skip svn dirs
--remove Remove all occurences of the find_string
-a, --adapt Adapt the case of replace_string to found string
-b, --backup Make a backup of each changed file
-p, --preview Do not change the files but print the changes
Bir gün böyle bir uygulama arayacaklara not olsun, benim kadar acı çekmesinler diye de bu yazıyı yazayım dedim.