修剪Awk中的前导和尾随空格

时间:2019-01-03 12:53:40

标签: unix awk ksh

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

 VINOTH                                                                                    |KARTHICK                                                                                       |RAVI

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

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

请帮助。

必需的输出。

VINOTH|KARTHICK|RAVI

2 个答案:

答案 0 :(得分:1)

您可以使用

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

答案 1 :(得分:1)

请您尝试以下操作(由于您的示例输入和预期输出不清楚,因此未对其进行测试)。

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