Adında bir metin dosyamız olduğunu varsayalım dağıtımlar.txt Takip ederek:
Arch Linux
debian
ubuntu
kaos
fötr şapka
Slackware
gentoo
Ve bunu şuna dönüştürmek istiyoruz:
archlinux debian ubuntu kaos fötr slackware gentoo
Bunu başarmak için kullanacağız döngü için y un yankı -n :
for i in `< distros.txt`; do echo -n ${i}" ";done; echo ""
Bitti, hile yapıyor 🙂
Bu bize terminalde istenen sonucu gösterecektir, öte yandan başka bir .txt dosyasına kaydedilmesini istiyorsak çıktıyı yeniden yönlendiririz:
for i in `< distros.txt`; do echo -n ${i}" ";done; echo "" > distros-nuevas.txt
Ve voila 🙂
Hiçbir şey, umarım yararlı bulursun. Bunun normal ifadelerle de yapılabileceğini açıklığa kavuşturmak geçerli, nasıl olduğunu bilmiyorum ... ama normal ifadelerle hemen hemen her şeyi yapabilirsiniz hahaha.
Daha kolay:
kedi distros.txt | xargs -n 100
Bir .odt dosyasında her sayfada 2 sütunum varsa, şöyle okurlar:
s. 1
sütun 1 sütun 2
s. 2
sütun 3 sütun 4
vb.
Her bir sütunu diğerinin altına nasıl getiririm?
sütun 1
sütun 2
sütun 3
sütun 4
vb.
Daha kolay:
Sekmelerle ayırmak istiyorsanız:
Yazarsınız: paste -s distros.txt
Aldığınız: archlinux debian ubuntu kaos fedora slackware gentoo
Boşluklarla ayrılmasını istiyorsanız:
Yazarsınız: yapıştır -s -d »» distros.txt
Aldığınız: archlinux debian ubuntu kaos fedora slackware gentoo
Virgülle ayırmak istiyorsanız:
Yazarsınız: yapıştır -s -d, distros.txt
Aldığınız: archlinux, debian, ubuntu, kaos, fedora, slackware, gentoo
Macun, kedi, awk ve diğer arkadaşlarla, biraz ustalıkla hayatınızı zorlaştırmadan birçok faydalı kombinasyon yapabilirsiniz.
Her şey harika devam etsin, Portal programlarındaki ödül için tebrikler!
Kısacası kremi sed, awk, cut, sort, uniq kullanıyorum, ancak ne yapabileceğini gösterdiğin için teşekkürler, yapıştırmaya hiç dikkat etmemiştim. Slds.
kedi dosya.txt | xargs
kar.
Bu [transpoze] için her zaman excel kullanıyorum ... çok kullanışlı
Başka bir değişken:
kedi distros.txt | tr «\ n» »«
Her yorumda HaHaHa, aynısını yapmanın farklı bir yolu!
Ve bunun tersini yapmak nasıl olurdu? Yani, boşluklarla ayrılmış bir kelime satırını bir sütuna dönüştürmek.
Çok kolay, bu sefer awk ile.
Alanların sekmelerle veya boşluklarla ayrıldığını varsayarsak, ki bu en yaygın olanıdır (virgül veya başka bir şey varsa, dikkate alınmalı ve gösterilmelidir) ve dosya artık şunları içerir: archlinux debian ubuntu kaos fedora slackware gentoo
Awk bize doğrudan istediğimiz alanı verdiğinden, sonuna kadar tek tek yinelemeli olarak göstermesini sağlamalıyız. 7 alan vardır çünkü bu NF'nin değeridir (Alan sayısı). Sayacı i = 1 olarak ayarladık, böylece bize ilk alanı ($ 1) gösterecek ve onu son alanı (NF) aşmadan bir birim (i ++ kullanarak) artırmalıyız.
awk '{for (i = 1; i <= NF; i ++) {print $ i}}' distros.txt
Her iki duyu için de işe yarayan en pratik, hatırlaması kolay yol şudur:
kedi distros.txt | tr '\ n' '' ← Yatay stdout çıkışı (Yukarıda zaten tartışılmıştır)
kedi distros.txt | tr '' '\ n' ← Dikey standart çıkış çıkışı
Selamlar!
Kesinlikle Etemenanki'nin çözümü, her iki şekilde de, yalnızca satırdan sütuna basit bir dönüşüm veya tam tersi istiyorsanız iyidir.
Cevap verdiğiniz için hepinize teşekkürler. Bunları yapacağım bir sonraki senaryoda uygulamaya koyacağım.
Selamlar.
Ve sadece yaparsan:
echo $ (cat distros.txt)
Daha da kolay:
awk '{printf $ 0 ″ «}' distros.txt