فرض کنید ما یک فایل متنی به نام داریم distros.txt با موارد زیر:
archlinux
دبیان
اوبونتو
آشوب
کلاه نمدی مردانه
نرم افزار
جنتو
و ما می خواهیم آن را به موارد زیر تبدیل کنیم:
archlinux debian ubuntu kaos fedora slackware gentoo
برای دستیابی به این هدف از a برای حلقه و پژواک -n :
for i in `< distros.txt`; do echo -n ${i}" ";done; echo ""
انجام شد ، این کار بزرگی است ...
اگر از طرف دیگر بخواهیم در یک فایل .txt دیگر ذخیره شود ، نتیجه دلخواه را در ترمینال به ما نشان می دهد:
for i in `< distros.txt`; do echo -n ${i}" ";done; echo "" > distros-nuevas.txt
و voila
خوب هیچ چیز ، امیدوارم که برای شما مفید باشد. معتبر است روشن شود که این کار را می توان با عبارات منظم نیز انجام داد ، من فقط نمی دانم چگونه ... اما ، با عبارات منظم می توانید تقریباً همه کارها را انجام دهید هااها.
15 نظر ، نظر خود را بگذارید
آسان تر:
distros.txt گربه | xargs -n 100
اگر در یک .odt در هر صفحه 2 ستون داشته باشم ، آنها اینگونه می خوانند:
ص 1
col.1 col.2
ص 2
col.3 col.4
و غیره.
چگونه می توانم هر ستون را زیر ستون دیگر قرار دهم؟
ستون 1
ستون 2
ستون 3
ستون 4
و غیره.
بسیار ساده تر:
اگر می خواهید با زبانه ها جدا شود:
شما می نویسید: paste -s distros.txt
دریافت می کنید: archlinux debian ubuntu kaos fedora slackware gentoo
اگر می خواهید با فاصله از هم جدا شود:
شما می نویسید: paste -s -d »» distros.txt
دریافت می کنید: archlinux debian ubuntu kaos fedora slackware gentoo
اگر می خواهید با کاما جدا شود:
شما می نویسید: paste -s -d، distros.txt
شما دریافت می کنید: archlinux ، debian ، ubuntu ، kaos ، fedora ، slackware ، gentoo
با خمیر ، گربه ، اوک و سایر دوستان ، با کمی هوشمندی می توانید بسیاری از ترکیبات مفید را بدون پیچیدگی زندگی خود انجام دهید.
بگذارید همه چیز عالی ادامه پیدا کند ، جایزه را در Portalprogramas تبریک می گوییم!
من از sed ، awk ، cut ، مرتب سازی ، uniq ، به طور خلاصه از کرم استفاده کرده ام ، اما هرگز توجهی به چسباندن نکرده ام ، متشکرم برای نشان دادن آنچه می تواند انجام دهد. قدیمی ها
file file.txt | گارگ
سود.
من همیشه در نهایت از excel برای این [استفاده از ترانزیست کردن] استفاده می کنم ... بسیار مفید
نوع دیگر:
distros.txt گربه | tr «\ n» »«
HaHaHa در هر نظر ، روش متفاوتی برای انجام همان کار!
و برای انجام عکس آن ، چگونه خواهد بود؟ یعنی تبدیل یک خط از کلمات جدا شده با فاصله به یک ستون.
خیلی راحت ، این بار با awk.
با فرض اینکه فیلدها با زبانه یا فاصله از هم جدا شوند ، این متداول ترین حالت است (اگر با کاما یا چیز دیگری باشد ، باید در نظر گرفته شود و نشان داده شود) ، و این پرونده اکنون شامل: archlinux debian ubuntu kaos fedora slackware gentoo
از آنجا که awk مستقیماً زمینه مورد نظر ما را در اختیار ما قرار می دهد ، باید کاری کنیم که تا آخر یک به یک به ما نشان دهد. 7 قسمت وجود دارد زیرا این مقدار NF (تعداد فیلدها) است. شمارنده i = 1 را تنظیم می کنیم ، به این ترتیب که اولین فیلد (1 $) را به ما نشان می دهد و مجبور می شویم بدون اینکه از آخرین قسمت (NF) بیشتر شود ، یک واحد افزایش یابد (با استفاده از i ++).
awk '{for (i = 1؛ i <= NF؛ i ++) {print $ i}}' distros.txt
عملی ترین راه ، به راحتی به خاطر سپرده شدن و برای هر دو حس مفید است:
distros.txt گربه | tr '\ n' '' output خروجی افقی stdout (قبلاً در بالا بحث شد)
distros.txt گربه | tr '' '\ n' output خروجی عمودی stdout
سلام!
قطعاً راه حل Etemenanki ، هر دو راه ، اگر فقط به یک تغییر شکل ساده از سطر به ستون و بالعکس علاقه دارید ، خوب است.
تشکر از همه شما برای پاسخ. من آنها را در متن بعدی که انجام می دهم عملی می کنم.
سلام.
و اگر فقط انجام دهید:
echo $ (گربه distros.txt)
حتی راحت تر:
awk '{printf $ 0 ″ «}} distros.txt