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
这里有一个OR运算符(由于使用了BRE POSIX语法而转义)\\\124;
请参见。您是否可以尝试以下内容(因为您的示例输入和预期输出不清楚,所以未对其进行测试)
试试sed的/[\t]*.[\t]*/./g;s/^[\t]*\\\\124;[\ t]*$//g'输入文件正在工作。你能解释一下这句话吗?也许是个愚蠢的问题,但你的输入文件中有一个单词,它以3个单词的形式出现,以一个管道作为分隔符。。。为什么?请使用水平滚动条查看完整行
awk '{gsub(/^[[:space:]]+|[[:space:]]+$/,"")} 1' Input_file