Awk

Awk Trim Whitespace

Awk Trim Whitespace
Как программисту вам, возможно, придется работать с разными файлами для хранения данных и управления ими. Одна из основных задач манипулирования файлами заключается в удалении пробелов в файлах. Пробелы состоят из пробелов, пустых строк, символов табуляции и табуляции. Программистам часто нужно удалять пробелы, чтобы хранились только необходимые данные, а ненужные пробелы можно было удалить. Пробелы могут быть как ведущими (в начале строки), так и конечными (в конце строки).

Ниже приведены некоторые сценарии, в которых может потребоваться удаление пробелов:

Можно удалить пробелы вручную, если файл содержит всего несколько строк. Но для файла, содержащего сотни строк, будет сложно удалить все пробелы вручную. Для этой цели доступны различные инструменты командной строки, включая sed, awk, cut и tr. Среди этих инструментов awk - одна из самых мощных команд.

Что такое Awk?

Awk - это мощный и полезный язык сценариев, используемый для обработки текста и создания отчетов. Команда awk сокращена с использованием инициалов каждого из людей (Ахо, Вайнбергер и Керниган), которые ее разработали. Awk позволяет определять переменные, числовые функции, строки и арифметические операторы; создавать форматированные отчеты; и больше.

В этой статье объясняется использование команды awk для обрезки пробелов. Прочитав эту статью, вы узнаете, как использовать команду awk для выполнения следующих действий:

Команды в этой статье были выполнены на Ubuntu 20.04 Система фокальной ямки. Однако те же команды можно выполнять и в других дистрибутивах Linux. Мы будем использовать приложение Ubuntu Terminal по умолчанию для выполнения команд в этой статье. Вы можете получить доступ к терминалу с помощью сочетания клавиш Ctrl + Alt + T.

В демонстрационных целях мы будем использовать образец файла с именем «sample.текст.»Для выполнения примеров, приведенных в этой статье.

Просмотреть все пробелы в файле

Чтобы просмотреть все пробелы, присутствующие в файле, передайте вывод команды cat по конвейеру команде tr, как показано ниже:

$ cat образец.txt | tr "" "*" | tr "\ t" "&"

Эта команда заменит все пробелы в данном файле символом (*). После ввода этой команды вы сможете четко видеть, где все пробелы (включая как ведущие, так и конечные пробелы) присутствуют в файле.

Символы * на следующем снимке экрана показывают, где в образце файла присутствуют все пробелы. Одиночный * представляет одиночный пробел.

Обрезать все пробелы

Чтобы удалить все пробелы из файла, передайте команду out of cat команде awk по конвейеру, как показано ниже:

$ cat образец.txt | awk 'gsub (/ /, ""); Распечатать '

Где

Приведенная выше команда заменяет все пробелы (/ /) ничем («»).

На следующем снимке экрана вы можете видеть, что все пробелы, включая начальные и конечные пробелы, были удалены из вывода.

Обрезать ведущие пробелы

Чтобы удалить из файла только начальные пробелы, передайте команду out of cat команде awk следующим образом:

$ cat образец.txt | awk 'к югу (/ ^ [\ t] + /, ""); Распечатать '

Где

Приведенная выше команда заменяет один или несколько пробелов в начале строки (^ [\ t] +) ничем («»), чтобы удалить ведущие пробелы.

На следующем снимке экрана вы можете видеть, что все ведущие пробелы были удалены из вывода.

Вы можете использовать следующую команду, чтобы убедиться, что указанная выше команда удалила ведущие пробелы:

$ cat образец.txt | awk 'к югу (/ ^ [\ t] + /, ""); print '| tr "" "*" |
tr "\ t" "&"

На скриншоте ниже хорошо видно, что удалены только ведущие пробелы.

Обрезать конечные пробелы

Чтобы удалить из файла только конечные пробелы, передайте команду out of cat команде awk следующим образом:

$ cat образец.txt | awk 'sub (/ [\ t] + $ /, ""); Распечатать '

Где

Приведенная выше команда заменяет один или несколько пробелов в конце строки ([\ t] + $) ничем («»), чтобы удалить конечные пробелы.

Вы можете использовать следующую команду, чтобы убедиться, что указанная выше команда удалила конечные пробелы:

$ cat образец.txt | awk 'sub (/ [\ t] + $ /, ""); print '| tr "" "*" | tr "\ t" "&"

На скриншоте ниже ясно видно, что конечные пробелы были удалены.

Обрезать начальные и конечные пробелы

Чтобы удалить как начальные, так и конечные пробелы из файла, передайте команду out of cat команде awk следующим образом:

$ cat образец.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); Распечатать '

Где

Приведенная выше команда заменяет как начальные, так и конечные пробелы (^ [\ t]+ [\ t] + $) без ничего (""), чтобы удалить их.

Чтобы определить, удалила ли указанная выше команда как начальные, так и конечные пробелы в файле, используйте следующую команду:

$ cat образец.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); print '|
tr "" "*" | tr "\ t" "&"

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

Заменить несколько пробелов одним пробелом

Чтобы заменить несколько пробелов одним пробелом, передайте команду out of cat команде awk следующим образом:

$ cat образец.txt | awk 'gsub (/ [] + /, ""); Распечатать '

Где:

Приведенная выше команда заменяет несколько пробелов ([] +) одним пробелом (««).

Вы можете использовать следующую команду, чтобы убедиться, что указанная выше команда заменила несколько пробелов пробелами:

$ cat образец.txt | awk 'sub (/ [\ t] + $ /, ""); print '| | tr "" "*" | tr "\ t" "&"

В нашем примере файла было несколько пробелов. Как видите, несколько пробелов в образце.txt были заменены одним пробелом с помощью команды awk.

Чтобы обрезать пробелы только в тех строках, которые содержат определенный символ, например запятую, двоеточие или точку с запятой, используйте команду awk с -F разделитель ввода.

Например, ниже показан наш образец файла, который содержит пробелы в каждой строке.

Чтобы удалить пробелы только из строк, содержащих запятую (,), команда будет выглядеть следующим образом:

$ cat sample1.txt | awk -F, '/, / gsub (/ /, ""); Распечатать'

Где (-F,) является разделителем поля ввода.

Вышеупомянутая команда удалит и отобразит только пробелы из строк, которые содержат указанный символ (,) в них. Остальные строки останутся без изменений.

Заключение

Это все, что вам нужно знать, чтобы обрезать пробелы в ваших данных с помощью команды awk. Удаление пробелов из ваших данных может потребоваться по нескольким причинам. Какой бы ни была причина, вы можете легко обрезать все пробелы в своих данных, используя команды, описанные в этой статье. Вы даже можете обрезать начальные или конечные пробелы, обрезать как начальные, так и конечные пробелы и заменить несколько пробелов одним пробелом с помощью команды awk.

Бесплатные движки с открытым исходным кодом для разработки игр для Linux
В этой статье будет рассмотрен список бесплатных игровых движков с открытым исходным кодом, которые можно использовать для разработки 2D- и 3D-игр в L...
Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...
Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...