Trim Awk 中的前导和尾随空格

Trim Leading and trailing Spaces in Awk

我有一个文件,其中包含 1 行,如下所示

 VINOTH                                                                                    |KARTHICK                                                                                       |RAVI

我正在使用以下命令删除前导空格和尾随空格,但它并没有起作用。

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

请帮忙。

需要输出。

VINOTH|KARTHICK|RAVI

您可以使用

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

这里有两个正则表达式:

  • s/[ \t]*|[ \t]*/|/g 用单个 | 替换所有包含可选空格的 | (正则表达式中的 | 匹配文字 | 字符BRE POSIX 标准)
  • s/^[ \t]*\|[ \t]*$//g 删除行首和行尾的所有空格。请注意,这里的 \| 是一个 OR 运算符(因为使用了 BRE POSIX 语法而被转义)。

参见online demo

能否请您尝试以下(由于您的示例输入和预期输出不明确,因此未进行测试)。

awk '{gsub(/^[[:space:]]+|[[:space:]]+$/,"")} 1'  Input_file