Text-Fu [Часть 4]

Обо всех ошибках пишите в комментариях

Содержание:

Часть 1

Часть 2

Часть 3

10. expand and unexpand (расширить и уменьшить)

В нашем уроке про команду cut мы сделали файл sample.txt, который содержит tab. Обычно TABы легко различить, но некоторые текстовые файлы не показывают это хорошо. TABы в тексте могут быть нежелательным для нас отступом. Чтобы изменить TABы на пробелы, используйте команду expand (расширить).

$ expand sample.txt

Теперь все TABы сконвертированы в пробелы.

Также как и с expand, мы можем конвертировать пробелы в TABы с командой unexpand:

$ unexpand sample.txt

Упражнения:

Что произойдет, если вы напишите expand без ввода файла?

11. join and split (соединить, разъединить)

Команда join позволяет вам соединять несколько файлов вместе по главному полю.

Давайте скажем, что у меня есть два файла, которые я хочу объединить вместе:

Заметили, как объединились мои файлы? Они объеденились вместе по первому полю, по-умолчанию, также поля должны быть одинаковыми, если нет, вы можете сортирвать их, в этом случае файлы соединены по 1, 2, 3.

Как бы мы объединили эти файлы?

file1.txt
John 1
Jane 2
Mary 3


file2.txt
1 Doe
2 Doe
3 Sue

Чтобы объединить эти файлы, вам нужно указать, какие поля вы соединяете, в этом случае мы хотим взять поле 2 в file1.txt и поле 1 в file2.txt, тепер команда выглядит так:

-1 относится к file1.txt, а -2 к file2.txt. Довольно опрятно. Вы также можете разделить файл выше на несколько других с командой split:

$ split somefile

Это разделит файл на несколько других, по умолчанию команда будет разделять файлы, как только они достигнут ограничения в 1000 строк. По-умолчанию файлы названы x**.

Упражнения:

Соедините два файла с разными номерами в строках в каждом файле, что происходит?

12. sort (сортировать)

Команда sort (сортировать) полезна для сортировки строк.

Вы также можете сделать обратную сортировку:

$ sort -r file1.txt
elephant
dog
cow
cat
bird

А также сортировать по числовым значениям:

$ sort -n file1.txt
bird
cat
cow
dog

elephant

GNU/Linux

1K постов15.5K подписчиков

Добавить пост

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

2
Автор поста оценил этот комментарий

Добавлено 40 минут назад. 0 минусов и плюсов. Это рекорд!

показать ответы
1
Автор поста оценил этот комментарий
Прочитала сообщения с телефона, а потом оно потерялось в толпе других, сейчас случайно вспомнила.


Проверь.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Теперь норм)
Автор поста оценил этот комментарий
Но ведь в последнем примере последние две строчки не по алфавиту...
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Посмотрел, моя ошибка, перепутал местами elephant и dog.

@Snipers, поменяй elephant и dog местами, там где я про сортировку по числовым значениям говорю

показать ответы
Автор поста оценил этот комментарий
Уу, на мне уже две замеченных ошибки, да я программист)))))
раскрыть ветку (1)
Автор поста оценил этот комментарий

нет просто я не сильно внимательно читал, т к все знакомо более менее. теперь вопрос - как грамотно прочитать гигабайтные файлы в винде(((( во всей конотре ни одного линукса нет(

раскрыть ветку (1)
Автор поста оценил этот комментарий
Что на счет live cd? Также в Windows powershell есть команда Get-Content
Автор поста оценил этот комментарий
Ясно. Сорян. Я бегло просматривал 3 часть, видать проморгал этот момент.
раскрыть ветку (1)
Автор поста оценил этот комментарий
Видать, стоит делать части покороче...
показать ответы
Автор поста оценил этот комментарий
Но ведь в последнем примере последние две строчки не по алфавиту...
раскрыть ветку (1)
Автор поста оценил этот комментарий
Хм, да, действительно, вечером посмотрю подробнее...
Автор поста оценил этот комментарий

Очень частая задача - чтение огромных лог файлов.

Классическая проблема в винде - чтение гигабайтных txt файлов. решают проблему  с помощью ms-word . а как еще?

но если есть линукс... читаем лог не целиком, а кусками(нужный кусок ищем по дате записи.)

Думаю можно это упомянуть

раскрыть ветку (1)
Автор поста оценил этот комментарий
Читайте часть 3, про tail) http://pikabu.ru/story/textfu_chast_3_4281398
показать ответы
Автор поста оценил этот комментарий

Интересно кому-нибудь в реальной задаче пригождалась команда join?

Зря вы ее поставили вместе со split. Рядом со split место команде cat. Чтобы юзер знал что делать с кучей файлов с почти одинаковыми названиями.

Пример для sort -n очень удачный подобрали.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я не выбираю материал сам, а только перевожу его. Оригинал здесь - https://linuxjourney.com

Автор поста оценил этот комментарий
Не поясните последний пример?
Спасибо, что стараетесь для нас.

P. S. Внутри мне грустно от того, что люди приобщаются к этому. Все прочитают эти туторы и я уже не буду выглядеть таким крутым с мало-мальским знанием вима и пары команд шелла. (Да, я такой 😈)
раскрыть ветку (1)
Автор поста оценил этот комментарий

Алфавит превращается в числовые значения, по которым производится сортировка. Проще говоря, сортировка по алфавиту

показать ответы
Автор поста оценил этот комментарий

Не следи ты за этим рейтингом. Дай-то Бог, чтобы твоими трудами ты хоть несколько человек в мир Линукса привел - тебе и так карма будет нехилая.

Спасибо за труды.

У тебя хороший подход. Можно обучаясь и других учить. И вектор неплох - сл.уровнем может быть как основа Bash, плавно переходящая в Python, так и собственно вариация над работой в консоли.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Следующее будет advanced text-Fu, основы вима и емакса)) Про консоль уже писал.
DELETED
Автор поста оценил этот комментарий
Спит же народ.
раскрыть ветку (1)
Автор поста оценил этот комментарий
Сон для слабаков