Предположим, у нас есть текстовый файл с именем дистрибутивы.txt со следующим:
Archlinux
Debian
Ubuntu
Kaos
мягкая фетровая шляпа
Slackware
папуасских
И мы хотим превратить это в:
Archlinux, Debian, Ubuntu, Каос, Fedora, Slackware, Gentoo
Для этого мы будем использовать для цикла y un эхо -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
И вуаля
Ну ничего, надеюсь, вы сочтете это полезным. Действительно, чтобы уточнить, что это также можно сделать с помощью регулярных выражений, я просто не знаю, как ... но с помощью регулярных выражений вы можете делать почти все, хахаха.
Полегче:
кот 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
С paste, cat, awk и другими друзьями, проявив немного изобретательности, вы можете составить множество полезных комбинаций, не усложняя себе жизнь.
Пусть все будет отлично, поздравляем с наградой в Portalprogramas!
Я использовал sed, awk, cut, sort, uniq, короче крем, но никогда не обращал внимания на paste, спасибо за то, что показал, на что он способен. Slds.
cat file.txt | xargs
прибыли.
Я всегда использую excel для этого [транспонирования] ... очень полезно
Другой вариант:
кот distros.txt | tr «\ n» »«
Ха-ха-ха в каждом комментарии, разные способы сделать то же самое!
А если бы все было наоборот, как бы это было? То есть преобразование строки слов, разделенных пробелами, в столбец.
Тоже легко, на этот раз с 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
Самый практичный, простой для запоминания способ, который работает для обоих органов чувств:
кот distros.txt | tr '\ n' '' ← Горизонтальный вывод stdout (уже обсуждалось выше)
кот distros.txt | tr '' '\ n' ← Вертикальный вывод стандартного вывода
Привет!
Определенно решение Этеменанки, в обоих направлениях, подходит, если вас интересует только простое преобразование из строки в столбец и наоборот.
Спасибо всем за ответ. Я использую их на практике в следующем сценарии.
Привет.
И если вы только делаете:
echo $ (cat distros.txt)
Еще проще:
awk '{printf $ 0 ″ «}» distros.txt