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 минусов и плюсов. Это рекорд!

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

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

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

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

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

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

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

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

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

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

раскрыть ветку