1

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

 VINOTH                                                                                    |KARTHICK                                                                                       |RAVI

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

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

请帮忙。

所需的输出。

VINOTH|KARTHICK|RAVI
4

2 回答 2

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 语法而被转义)。

请参阅在线演示

于 2019-01-03T13:08:05.020 回答
1

您能否尝试以下操作(因为您的示例输入和预期输出不清楚,所以没有测试它)。

awk '{gsub(/^[[:space:]]+|[[:space:]]+$/,"")} 1'  Input_file
于 2019-01-03T13:13:00.187 回答