Text-Fu [Часть 4]
Обо всех ошибках пишите в комментариях
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
dogelephant
GNU/Linux
1.1K постов15.5K подписчиков
Правила сообщества
Все дистрибутивы хороши.
Будьте людьми.