Обрезать ведущие и конечные пробелы в Awk - PullRequest
0 голосов
/ 03 января 2019

У меня есть файл, который содержит 1 строку, как показано ниже

 VINOTH                                                                                    |KARTHICK                                                                                       |RAVI

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

awk '{ gsub(/^[ \t]+|[ \t]+$/, ""); print }' Input_File

Пожалуйста, помогите.

Требуемый вывод.

VINOTH|KARTHICK|RAVI

Ответы [ 2 ]

0 голосов
/ 03 января 2019

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

awk '{gsub(/^[[:space:]]+|[[:space:]]+$/,"")} 1'  Input_file
0 голосов
/ 03 января 2019

Вы можете использовать

sed 's/[ \t]*|[ \t]*/|/g;s/^[ \t]*\|[ \t]*$//g' Input_File

Здесь есть два регулярных выражения:

  • s/[ \t]*|[ \t]*/|/g заменяет все |, заключенные в необязательные пробелы, на один | (| в регулярном выражении соответствует буквальному символу | согласно стандарту BRE POSIX)
  • s/^[ \t]*\|[ \t]*$//g удаляет все пробелы в начале и конце строк. Обратите внимание, что \| здесь - оператор OR (экранированный, потому что используется синтаксис BRE POSIX).

См. онлайн-демонстрацию .

...