Linux: dosyalar arasında ayırıcı bulunan kedi


28

Linux'ta eğer cat * yazarsanız, şöyle bir şey alırsınız:

dosya1 den satırı1
dosya1 gelen LINE2
file2 gelen LINE1
dosya3 gelen LINE1
LINE2 dosya3 gelen
File3 gelen Satır3

İstediğim, dosyalar arasında bir ayırıcı görüntülemek. Böyle bir şey:
satırı1 dosya1 den
file1 gelen LINE2
XXXXXXXXXXXX
LINE1 Dosya2 gelen
XXXXXXXXXXXX
satırı1 dosya3 gelen
LINE2 dosya3 gelen
File3 gelen Satır3

Kalp atması kolay tek bir astarla bu kolayca mümkün müdür?

Yanıtlar:


40

Ayırıcının görünümü hakkında fazla telaşlı değilseniz:

tail -n +1 *

Bu harika! Komutunun kuyruğundan ne kadar farklı olduğuna şaşırdım. Adam sayfasındaki + 1'in etkisinden (1'den ziyade) bahsetmiyorum.
Daniele

1
tail -n Xson X satırını gösterir. tail -n +XX çizgisinden 1 ile başlayan başlar , yani ilk (X-1) çizgileri hariç hepsini gösterir.
Gilles 'SO- kötülük yapmayı bırak'

Ah, şimdi man sayfasında onu görebiliyorum. Gözardı ettim. Harika, bir demet teşekkürler
Daniele

Benzer çözümler bu makalede bulunmaktadır: everythingsysadmin.com/2012/09/unorthodoxunix.html
TomOnTime

Kötü yorum için üzgünüm, ama bu harika. Teşekkür ederim, @Gilles
Mike D

17

cd /to/your/directory; for each in *; do cat $each; echo "XXXXXXXXXXX"; done


beni yendi :-)
Sirex

Yine de Gilles tarafından sağlanan çözüm etkileyici şekilde kısa!
Janne Pikkarainen

Vay. işleri merak ediyorum. JSON'lerin bir klasörünü birleştirmeme yardım etti
Mayank

11
awk 'FNR==1 && NR!=1 {print "XXXXXXXXXXXX"}{print}' *

Veya

awk 'FNR==1 {print "XXXXXX", FILENAME, "XXXXXX"}{print}' *

Veya

awk 'FNR==1 {print "XXXXXX File no. " ++count, "XXXXXX"}{print}' *

Sadece Bash (no cat) kullanarak :

for file in *; do printf "$(<"$file")\nXXXXXXXXXXXX\n"; done

Düzenle:

AWK 4’te:

awk 'BEGINFILE {print "XXXXXXXXXXXX"}{print}' *

Bu cevaptaki diğer örneklerde olanlar gibi herhangi bir ayırıcı kullanabilirsiniz. Her dosyanın sonuna ayırıcı istiyorsanız, değiştirmek BEGINFILEiçin ENDFILE. Koşullu olduğu için betiğin başında hala görünebilir (yürütme emri yerine)


2
Awk için +1! Yemin ederim her şeyi yapabilir ...
bra
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.