Supozoni se kemi një skedar teksti të quajtur distros.txt me sa vijon:
archlinux
Debian
ubuntu
këmishë
fedora
xhama
gentoo
Dhe ne duam ta kthejmë atë në:
archlinux debian ubuntu ka ushqyer slackware gentoo
Për të arritur këtë ne do të përdorim një për lak dhe një jehonë -n :
for i in `< distros.txt`; do echo -n ${i}" ";done; echo ""
Bërë, kjo bën hile
Kjo do të na tregojë rezultatin e dëshiruar në terminal, nëse nga ana tjetër duam që ai të ruhet në një skedar tjetër .txt ne e ridrejtojmë prodhimin:
for i in `< distros.txt`; do echo -n ${i}" ";done; echo "" > distros-nuevas.txt
Dhe voila
Epo asgjë, shpresoj se ju duket e dobishme. E vlefshme për të sqaruar se mund të bëhet edhe me shprehje të rregullta, thjesht nuk e di se si ... por, me shprehje të rregullta mund të bësh pothuajse gjithçka hahaha.
më lehtë:
distros macet.txt | xargat -n 100
Nëse në një .odt kam 2 kolona në secilën faqe, ata lexojnë kështu:
f. 1
kol.1 kol.2
f. 2
kol.3 kol.4
etj.
Si mund ta marr secilën kolonë poshtë tjetrës?
kol.1
kol.2
kol.3
kol.4
etj.
Shumë më e lehtë:
Nëse dëshironi të ndahen me skeda:
Ju shkruani: ngjitni -s distros.txt
Ju merrni: archlinux debian ubuntu kaos fedora slackware gentoo
Nëse dëshironi që të ndahet me hapësira:
Ju shkruani: ngjitni -s -d »» distros.txt
Ju merrni: archlinux debian ubuntu kaos fedora slackware gentoo
Nëse dëshironi që të ndahet me presje:
Ju shkruani: ngjitni -s -d, distros.txt
Ju merrni: archlinux, debian, ubuntu, kaos, fedora, slackware, gentoo
Me paste, mace, awk dhe miq të tjerë, me pak zgjuarsi mund të bëni shumë kombinime të dobishme pa e ndërlikuar jetën tuaj.
Le të vazhdojë gjithçka shkëlqyeshëm, urime për çmimin në Portalprogramas!
Unë kam qenë duke përdorur sed, awk, cut, sort, uniq, me pak fjalë krem, por unë kurrë nuk kam kushtuar vëmendje për të ngjitur, faleminderit për të treguar se çfarë mund të bëjë. Slds.
skedar mace.txt | xhargat
fitim.
Unë gjithmonë përfundoj duke përdorur excel për këtë [transpozim] ... shumë i dobishëm
Një variant tjetër:
distros macet.txt | tr «\ n» »«
HaHaHa në çdo koment, një mënyrë tjetër për të bërë të njëjtën gjë!
Dhe për të bërë të kundërtën, si do të ishte? Kjo është, shndërrimi i një linje fjalësh të ndara me hapësira në një kolonë.
Shumë e lehtë, këtë herë me awk.
Duke supozuar që fushat janë të ndara me skeda ose hapësira, e cila është më e zakonshmja (nëse është me presje ose diçka tjetër, duhet të merret parasysh dhe të tregohet), dhe se skedari tani përmban: archlinux debian ubuntu kaos fedora slackware gentoo
Meqenëse awk na jep drejtpërsëdrejti fushën që duam, duhet ta bëjmë që të na tregojë në mënyrë përsëritëse një nga një deri në fund. Ka 7 fusha sepse kjo është vlera e NF (Numri i fushave). Vendosim numëruesin i = 1, në mënyrë që të na tregojë fushën e parë ($ 1) dhe duhet ta marrim që të rritet me një njësi (duke përdorur i ++) pa tejkaluar fushën e fundit (NF).
awk '{for (i = 1; i <= NF; i ++) {print $ i}}' distros.txt
Mënyra më praktike, e lehtë për tu mbajtur mend dhe që funksionon për të dy shqisat është kjo:
distros macet.txt | tr '\ n' '' output Dalja horizontale e stdout (Diskutuar tashmë më lart)
distros macet.txt | tr '' '\ n' output Dalje vertikale e ndalimit
Përshëndetje!
Padyshim që zgjidhja e Etemenanki, të dy mënyrat, është e mirë nëse ju intereson vetëm një transformim i thjeshtë nga rreshti në kolonë dhe anasjelltas.
Faleminderit të gjithëve për përgjigjen. Unë do t'i vë ato në praktikë në skenarin tjetër që bëj.
Përshëndetje.
Dhe nëse bëni vetëm:
jehonë $ (shpërndarja e maceve.txt)
Edhe më lehtë:
awk '{printf $ 0 ″ «}} distros.txt