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 подписчиков

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

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

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

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