Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 修剪Awk中的前导和尾随空格_Unix_Awk_Ksh - Fatal编程技术网

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

Unix 修剪Awk中的前导和尾随空格,unix,awk,ksh,Unix,Awk,Ksh,我有一个文件,其中包含一行如下 VINOTH |KARTHICK |RAVI 我正在使用下面的命令删除前导空格和尾随空格,但它不起作用 awk '{ gsub

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

 VINOTH                                                                                    |KARTHICK                                                                                       |RAVI
我正在使用下面的命令删除前导空格和尾随空格,但它不起作用

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

所需输出

VINOTH|KARTHICK|RAVI
你可以用

sed 's/[ \t]*|[ \t]*/|/g;s/^[ \t]*\|[ \t]*$//g' Input_File
这里有两个regexp:

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

请参见。

您是否可以尝试以下内容(因为您的示例输入和预期输出不清楚,所以未对其进行测试)


试试sed的/[\t]*.[\t]*/./g;s/^[\t]*\\\\124;[\ t]*$//g'输入文件正在工作。你能解释一下这句话吗?也许是个愚蠢的问题,但你的输入文件中有一个单词,它以3个单词的形式出现,以一个管道作为分隔符。。。为什么?请使用水平滚动条查看完整行
awk '{gsub(/^[[:space:]]+|[[:space:]]+$/,"")} 1'  Input_file