2015-03-16 17 views
8
grep -l \'texttofind\' * | xargs sed -i 's/toreplace/replacewith/g' 

Terminalde yukarıdaki komutu çalıştırdığımda bu hatayı alıyorum.sed: 1: "...": Geçersiz komut kodu f

sed: 1: "forkliftDailyChecklistW ...": invalid command code f 

Birkaç foruma baktım ve kod f hakkında hiçbir şey bulamadım. Herhangi bir yardım/içgörü, neyin yanlış olduğunu anladım

+1

(yerine toreplace' ve 'replacewith'' arasında) kullandığınızı tam sed komutu gösterin. Çılgınca tahmin etme: Terimlerden birinde bir '/' var mı? – Wintermute

+0

Evet. 'Grep' çıktısının doğruluğunu varsayarak kesinlikle 'sed' argümanlarında '/' kontrol etmelisiniz. Bu durumda, '' s_toreplace_replacewith_g '' sözdizimini kullanmayı deneyin. – TomCho

+0

İşte komut: grep -l \ '/ usr/local/www/apache22/data/htconfig/dbconfigure.php \' * | xargs sed -i/\/usr \/local \/www \/apache22 \/data/'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ '/ g' –

cevap

14

. Ben -i sonra '' eklemek için gerekli ve 's/../../' önce:

grep -l \'texttofind\' * | xargs sed -i '' 's/toreplace/replacewith/g' 
+1

Öğle yemeğinin tamir edeceğini biliyordum! – Tdorno

+4

Muhtemelen bir Mac veya BSD sistemi kullanıyorsunuzdur. BSD 'sed' komutu '-i 'seçeneğini alır ancak yedek için bir son ek gerektirir (ancak boş bir sonek izin verilir). Temel platform bilgilerinin sağlanması genellikle yardımcı olur. –

İlgili konular