terminal: grep sonuçlarını nasıl bir dosya açacağım


1

İsterdim grepve opensadece bir terminali komuta bir dosya.

Bu dizinde olduğumu varsayalım:

$ ls
1.txt   2.txt   3.txt   4.txt   5.txt

ve açmak istiyorum 3.txt

Yapabileceğimi düşündüm ls | grep 3 | open

ancak openboru girişini kabul etmiyor gibi görünüyor . Bunu yapmanın bir yolu var mı?

Yanıtlar:


2

Dene open $(ls | grep 3). Özel gereksinimlerinize bağlı olarak, grepparçayı atlayıp doğrudan open $(ls *3*)(veya hatta open *3*) kullanabilirsiniz .


open $(ls *3*)Ve sadece arasındaki fark nedir open *3*?
David Anderson,

Bu durumda yok, iyi nokta :-). OP’nin daha karmaşık kalıplara sahip olduğunu varsayıyorum.
nohillside

2
Pro İpucu: --Yaparken ls, daima glob * ' a önce bir ekleme yapın rm, openvb. Ve asla "-rf" adlı dosyalar yaratma ...
Max Ried

lsDosya adı argümanları üretmek için ayrıştırma kötü bir fikirdir. Dizin, model / glob ile eşleşen boşluklu dosya adları içeriyorsa, istenmeyen sonuçlar elde edebilirsiniz.
04:

1

Başka seçenek

find . -name "*3*" -exec open {} \;

Geçerli dizinden aşağıya adı 3 olan herhangi bir dosyada açılacak. Boşluklar ve ters eğik çizgi bu durumda önemlidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.