Potansiyel olarak sterilize edilmemiş girdilerle uğraşırken, işimden önce (özellikle insanların posta kutularını temizlemek gibi yıkıcı bir şey olduğunda) tüm işin görsel denetim için satır satır sıralandığını görmek isterim.
Bu yüzden yaptığım bir parametre listesi (örneğin, kullanıcı adı) oluşturmak, onu bir satır başına kayıt şeklinde bir dosyaya beslemek, bunun gibi:
johndoe
jamessmith
janebrown
Sonra listeyi açtım vim
ve şu şekilde yürütülmesi gereken tam komutların bir listesini bulana kadar onu ara ve değiştir ifadeleriyle yönetiyorum:
/bin/rm -fr /home/johndoe
/bin/rm -fr /home/jamessmith
Bu şekilde regex'iniz eksikse, hangi komutun potansiyel problemleri olacağını göreceksiniz (örn. /bin/rm -fr johnnyo connor
). Bu şekilde regex'inizi geri alabilir ve daha güvenilir bir sürümüyle tekrar deneyebilirsiniz. İsim yönetimi bu konuda çok ünlüydü, çünkü Van Gogh, O'Connors, St. Clair, Smith-Wesson gibi tüm son durumlarla ilgilenmek zor.
Having set hlsearch
bu işi için yararlıdır vim
tüm maçları vurgulayacaktır gibi, bu yüzden istenmeyen bir şekilde eşleşecek veya maçlar etmezse kolayca tespit edebilirsiniz.
Regex'iniz mükemmel olduğunda ve test edebileceğiniz / düşünebileceğiniz tüm vakaları yakaladığında, genellikle başka bir çalışma için tamamen otomatik hale getirilebilmesi için genellikle sed ifadesine dönüştürürüm.
Giriş satırı sayısının görsel bir inceleme yapmanıza engel olduğu durumlar için, çalıştırmadan önce komutun ekrana (veya daha iyisi bir kayıt) yankılanmasını şiddetle tavsiye ederim, bu nedenle eğer hata çıkarsa, tam olarak hangi komutun neden olduğunu bilirsiniz. başarısız. Ardından, orijinal regex'inize dönebilir ve bir kez daha ayarlayabilirsiniz.
printf "foo bar\nbaz bat" | xargs echo whee
üretecekwhee foo bar baz bat
. Belki-L
veya-n
seçeneklerini ekleyin ?