Продолжаем...
24. Вырезать из первого символа в заданную позицию из файла
$ cut -c -5 test.txt
Эта команда вырезания в Unix будет вырезать первые пять символов каждой строки из файла test.txt. Обратите внимание, как дефис (-) используется для команд 21-24 в этом списке.
Вырезать текст из столбцов, используя поля и разделители
Команда cut позволяет пользователям очень легко вырезать фрагменты текста. Для этого нам нужно использовать оба флага: d и f. Флаг d обозначает разделители, а f - поля. Разделители - это специальные символы, которые отделяют раздел текста от других. Общие примеры включают «-», «:» и «» (пробел). Ссылочный файл, который мы используем, имеет разделитель «:».
25. Вырежьте первый раздел входного потока
$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 1
Приведенная выше команда cut вырезает первую часть текста ( в данном случае «let’s» ) из входного потока. Обратите внимание, что значение флага -d разделителя - это один пробел. Попробуйте это с текстом, разделенным двоеточием, и посмотрите, что произойдет для вас.
26. Вырежьте первый раздел файла
$ cut -d ':' -f 1 test.txt
Эта команда вернет первые столбцы каждой строки в нашем справочном файле и напечатает название всех пяти стран. Значение, предоставленное флагу разделителя, было двоеточием, потому что именно так наш файл разделяет столбцы.
27. Вырезать определенные разделы входного потока
$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 1,2,3
Здесь мы указали cut показать только первые три поля данной входной строки. Это делается с помощью массива полей, разделенных запятыми. Результатом этой команды будет «Let’s cut this».
28. Вырезать определенные разделы файла
$ cut -d ':' -f 1,2,3 test.txt
Эта команда также предоставит тот же вид вывода, что и предыдущая команда. Здесь cut просто работает с файлом вместо стандартного ввода, вот и все. В нем должны быть указаны название, капитал и валюта каждой страны в списке. Однако, обратите внимание на разницу между их разделителями (пробел и двоеточие).
29. Вырезать диапазон полей из входного потока
$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 1-5
Приведенная выше команда обрежет первые пять полей строки и отобразит ее в терминале. Апострофы требуются, когда в качестве разделителя между несколькими полями используется пробел.
30. Вырезать диапазон полей из файла
$ cut -d ':' -f 1-3 test.txt
Эта команда cut будет вырезать каждый из первых трех столбцов нашего текстового файла и показывать его в качестве вывода. Это должно отображать тот же результат, что и команда, предшествующая предыдущей. Апострофы не обязательны для таких символов, как – or: .
31. Вырежьте каждую запись из определенного поля и перечислите их в алфавитном порядке
$ cut -d ':' -f 1 test.txt | awk '{print $1}' | sort
Предположим, вам нужно найти названия пяти стран в нашем списке в алфавитном порядке, для этого вы можете использовать приведенную выше команду. В нем будут перечислены страны в алфавитном порядке. Подстановка в значении флага f позволит вам сделать это и в других полях.
32. Вырежьте каждую запись из поля и перечислите их в алфавитном порядке
$ cut -d ':' -f 1 test.txt | awk '{print $1}' | sort -r
Эта команда выполняет ту же операцию, что и предыдущая, просто сортирует записи в обратном порядке, вот и все. Выходные данные здесь изменяются из-за флага -r, переданного для сортировки.
33. Вырезать из фиксированного поля до конца входного потока
$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 2-
Эта команда cut будет вырезать, начиная со второго поля и до конца строки. Это может быть полезно, когда вам нужно вырезать из указанной позиции до конца ввода. Вы можете изменить значение -f , сохраняя trailing – on для резки из разных полей.
34. Вырезать из фиксированного поля до конца файла
$ cut -d ':' -f 2- test.txt
При таком использовании команда вырезания начнет резку с указанного поля и будет идти до конца каждой строки. В этом случае она распечатает капитал, валюту и население каждой из пяти стран в списке.
35. Вырежьте указанное количество столбцов, начиная с первого
$ echo "Let's cut this input stream section by section" | cut -d ' ' -f -5
Эта команда будет вырезать только первые пять полей данного ввода. Вы можете вырезать из начального столбца любую другую позицию столбца, просто подставив значение -f. Однако вам нужно добавить предыдущий дефис (-), иначе вывод не будет соответствовать вашим ожиданиям.
36. Вырезать некоторые указанные столбцы файла, начиная с первого
$ cut -d ':' -f -2 test.txt
Эта команда cut в Linux начнет вырезать наш файл test.txt из первого столбца и прекратит работу после завершения вырезания второй команды. Таким образом, вывод этой команды будет просто отображать название каждой страны и их соответствующие столицы.
37. Вырезать несколько полей из файлов CSV
$ cut -d ',' -f 1,2 file.csv
Команда cut часто оказывается жизнеспособным инструментом при работе с массивными CSV-документами. Например, приведенная выше команда обрежет первые два столбца CSV-файла, разделенного запятыми, который называется file.csv.
38. Вырезать определенные поля CSV-файлов и сортировать их в обратном порядке
$ cut -d ',' -f 1,3,5 file.csv | sort -r
Приведенная выше команда обрежет первый, третий и пятый столбцы CSV-файла с разделением запятыми с именем file.csv и отобразит выходные данные в обратном порядке.
Некоторые другие команды Linux Cut для экспертов
Команду cut можно использовать для расширенной обработки файлов, используя ее с соответствующими фильтрами и другими надежными командами Linux. Ниже мы рассмотрим некоторые такие команды, которые могут пригодиться вам в долгосрочной перспективе.
39. Проверьте файл passwd с помощью команды Cut
$ cut -d ':' -f1 /etc/passwd
Файл passwd, хранящийся в / etc в большинстве систем, содержит очень конфиденциальную информацию о системе и ее пользователях. Вы можете быстро проверить этот файл с помощью команды cut . Разделитель ':' используется, так как столбцы этого файла разделяются с помощью него. Измените значение -f для мониторинга различных полей.
40. Вырезать определенные поля и показывать только уникальные записи
$ cut -d ':' -f 3 test.txt | uniq -u
Эта команда вырезания в Linux разрезает третий столбец файла test.txt и отображает только уникальные записи. Таким образом, для этого файла вывод будет содержать только три валюты - а именно евро, лиру и иену.
41. Вырезать все байты входного потока, кроме указанных
$ echo "Let's cut this input stream section by section" | cut -b 1,3,5,7 --complement
Эта команда обрезает все символы заданной входной строки, кроме тех, которые указаны для -b . Таким образом, позиции байтов первой, третьей, пятой и седьмой будут исключены из выходных данных.
42. Вырезать все байты файла, кроме указанных
$ cut -b 2,4,6 test.txt --complement
При использовании таким образом команда cut обрезает все байты файла test.txt, кроме указанного в команде. Таким образом, выходные данные не будут содержать второй, четвертый и шестой байты каждой строки.
43. Вырезать все символы входного потока, кроме указанных
$ echo "Let's cut this input stream section by section" | cut -c 1,3,5,7 --complement
Эта команда воздерживается от обрезания первого, третьего, пятого и седьмого символов входной строки и вместо этого обрезает все остальные символы, кроме этих четырех.
44. Вырезать все символы файла, кроме указанных
$ cut -c 2,4,6 test.txt --complement
В случае этой команды вывод будет содержать все символы файлов test.txt, кроме упомянутых. Таким образом, символы второго, четвертого и шестого не будут отображаться.
45. Вырезать все входные секции, кроме указанных
$ echo "Let's cut this input stream section by section" | cut -d ' ' -f 1,3,5 --complement
Приведенная выше команда выведет строку «cut input section by section». Таким образом, она будет отображать все входные разделы без тех, которые упомянуты после флага field.
46. Вырезать все столбцы файла, кроме указанных
$ cut -d ':' -f 2,3 test.txt --complement
Эта команда будет вырезать только первый и последний столбцы файла test.txt . Таким образом, вы можете легко отменить выбор некоторых полей при обработке больших табличных документов с помощью флага дополнения.
47. Вырежьте часть ввода и поменяйте их местами
$ echo "Let's cut this input stream section by section" | rev | cut -d ' ' -f 1,3
Приведенная выше команда Linux обрежет первую и третью часть ввода и обратным образом перевернет их. Обратите внимание, как вывод одной команды подается в качестве ввода для других команд.
48. Вырежьте определенные столбцы в файле и поменяйте их местами
$ cut -d ':' -f 1,3 test.txt | rev
Эта команда будет вырезать только указанные поля файла test.txt и отобржать результат в обратном порядке.
49. Измените выходной разделитель команды Cut
$ echo "A,comma,separated,list,for,demonstration,purposes" | cut -d ',' -f 1- --output-delimiter=' '
Cut позволяет нам изменять разделитель вывода при отображении результата. Приведенная выше команда обрезает все разделы списка, разделенного запятыми, но заменяет запятые пробелами при отображении результата.
50. Пример команды Cut + Sed с Tab Delimiter (разделителем табуляции)
$ sed 's/:/\t/g' test.txt | cut -f 1-4
Последняя команда cut нашего списка использует мощную утилиту sed, чтобы заменить двоеточия в нашем файле на вкладки. Вы можете заменить \t другими символами, такими как – or; для изменения на выходной разделитель по вашему выбору.