Posta kayıtlarını okumak inanılmaz zor. Komut satırında basılan her satır arasında nasıl boş satır çıktırabilirim? Örneğin, kütüğü elden tutuyorum. Bu şekilde, çok sayıda sarılı çizginin kafası karışmaz.
Posta kayıtlarını okumak inanılmaz zor. Komut satırında basılan her satır arasında nasıl boş satır çıktırabilirim? Örneğin, kütüğü elden tutuyorum. Bu şekilde, çok sayıda sarılı çizginin kafası karışmaz.
Yanıtlar:
sed G
# option: g G Copy/append hold space to pattern space.
G
sık kullanılmaz, ancak bu amaç için güzeldir. sed , iki tampon alanını korur: “desen alanı” ve “tutma alanı”. Tarafından işleme hatları sed çeşitli komutlar (içeriği üzerinde işlem olarak genellikle model alanı akar s///
, p
vb); tutma alanı boş başlar ve yalnızca bazı komutlar tarafından kullanılır.
G
Komut Yeni satır ve desen uzaya tutma alanı içeriğini ekler. Yukarıdaki sed programı hiçbir zaman tutma alanına G
koymaz , bu nedenle işlenen her satıra yalnızca yeni bir satır ekler.
-e
zamandan beri ayrılabiliriz, çünkü orada sadece bir komut argümanına ihtiyacımız var.
Peşinde olduğun şey bu mu?
grep SPAM mail.log | while read -r line; do echo; echo $line; done
read -r
ters eğik çizgi karakterlerini özel olarak ele almamak için kullanmak isteyeceksiniz .
Bakmaktan başka bir şey yoksa, onları bir metin dosyasına göndermeyi ve bir metin düzenleyici ile açmayı tercih ederim, böylece satırları sarmak veya koymamak için kolayca ayarlayabilir ve kolayca arama yapabilirsiniz ... istenmeyen satırları vb. çok fazla komut yazmanız gerekiyor.
cat file.log > log.txt
ve gedit log.txt
veya nano gibi bir terminal editörü
Düzenleme: ya da cp file.log log.txt
elbette ki elbette daha kolay ve hızlı ... KeithB yorum sayesinde
cat
ve değil cp
?
cp
daha kolay ve daha hızlı olurdu! ... lol - Ben ilgilenen diğer cevapları okuyordum grep
ve awk
bu cat
şekilde yazdım ama bunu düzeltirim, teşekkürler
whatever | sed G
hile yapmak gerekir.