Припустимо, у нас є текстовий файл із назвою distros.txt з наступним:
Арклінукс
Debian
Ubuntu
якs
м'яка фетровий капелюх
слабкі програми
gentoo
І ми хочемо перетворити це на:
архіву debian ubuntu як Fedora Slackware Gentoo
Для досягнення цього ми будемо використовувати a для циклу і ехо -н :
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
І вуаля 🙂
Ну нічого, сподіваюся, вам це стане в нагоді. Дійсно уточнити, що це також можна робити з регулярними виразами, я просто не знаю як ... але, з регулярними виразами ви можете робити майже все ха-ха-ха.
простіше:
кішка distros.txt | xargs -n 100
Якщо в .odt у мене є 2 стовпці на кожній сторінці, вони читаються так:
стор.1
кол.1 кол.2
стор.2
кол.3 кол.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, sort, uniq, коротше крем, але ніколи не звертав уваги на вставлення, дякую, що показав, що він може зробити. Slds.
cat file.txt | ксарг
прибутку.
Я завжди використовую Excel для цього [транспонування] ... дуже корисно
Інший варіант:
cat distros.txt | tr «\ n» »«
HaHaHa у кожному коментарі, по-різному зробити те саме!
А щоб зробити все навпаки, як би це було? Тобто перетворення рядка слів, розділених пробілами, у стовпець.
Також легко, цього разу з awk.
Припускаючи, що поля розділені вкладками або пробілами, що є найпоширенішим (якщо це коми, чи щось інше, це потрібно врахувати та вказати), і що файл тепер містить: archlinux debian ubuntu kaos fedora slackware gentoo
Оскільки awk безпосередньо дає нам те поле, яке ми хочемо, ми повинні змусити його ітеративно показувати нас по черзі до кінця. Є 7 полів, оскільки це значення NF (Кількість полів). Ми встановлюємо лічильник i = 1, так що він показує нам перше поле ($ 1), і ми повинні змусити його збільшитись на одну одиницю (використовуючи i ++), не перевищуючи останнє поле (NF).
awk '{for (i = 1; i <= NF; i ++) {print $ i}}' distros.txt
Найпрактичніший спосіб, який легко запам’ятати, і який працює для обох органів чуття - це:
cat distros.txt | tr '\ n' '' ← Вихід горизонтального виведення (вже обговорювалося вище)
cat distros.txt | tr '' '\ n' ← Вертикальний вихід stdout
Привіт!
Безумовно, рішення Етеменанкі в обох напрямках добре, якщо вас цікавить лише просте перетворення з рядка в стовпець і навпаки.
Дякую всім за відповідь. Я застосую їх на практиці в наступному сценарії, який я роблю.
Привіт.
І якщо ви лише робите:
echo $ (cat distros.txt)
Ще простіше:
awk '{printf $ 0 ″ «}' distros.txt