Kullanarak "1" ile başlayan satırları aramaya çalışıyorum.
ls -1 | grep ^1*
ancak 1 ile başlamayan satırları döndürür. Burada neyi özlüyorum?
Kullanarak "1" ile başlayan satırları aramaya çalışıyorum.
ls -1 | grep ^1*
ancak 1 ile başlamayan satırları döndürür. Burada neyi özlüyorum?
Yanıtlar:
Bu, sorunuzu yanıtlamamasına rağmen, bu, amacınız için görünenlere daha iyi bir çözümdür:
ls -ld 1*
Başlatan tüm dosyaları listelemek için bir kabuk küre kullanabilirsiniz 1
. *
Kabuk işlemede normal ifadelerden farklı bir anlamı olduğunu unutmayın .
*
, "0 veya daha fazla karakterden herhangi biri" anlamına gelen bir joker karakterdir. Regex anlamı otokan'ın cevabında açıklanmıştır.
^ 1. * tüm satırla eşleşir veya yukarıda belirtildiği gibi, ^ 1 satırda bulunan dizeyi alır.
farklı regex stilleri karakterleri temsil eden farklı semboller kullanır, bazı seçenekler istediğiniz stili belirtir. ve farklı seçenekler, tüm satırın mı yoksa sadece bir kısmının mı yoksa tüm girişin tek bir dize olarak mı eşleşmesini istediğinizi belirtir.
ls
Çıktıyı sınırlamak için grep kullanmak istiyorsanız, dosya isimleri yeni satırlar gibi bazı garip karakterler içeriyorsa sorun yaşarsınız ... Diğer birçok komut (bir şekilde değills
, en azından kontrol etmem gereken versiyon) null ayrılmış çıktısı vermek için bir seçeneğiniz var, bu sayede güvenle işlem yapabilirsinizgrep -z