【发布时间】:2014-10-20 22:38:17
【问题描述】:
如果我有一个文件:
0
on
0
off
0
0
...
命令:
awk '$1 == "on", $1 == "off"' < file
什么都不返回。 奇怪的是,如果我将输入文件更改为:
0
on ;
0
off ;
0
0
返回值符合预期:
on ;
0
off ;
这里发生了什么?如果我的字段是最后一行,awk 似乎不喜欢它。
我尝试将$1 更改为$0,并将$0 == "on" 更改为$0 == "on\n",但没有成功。
有没有办法处理 awk 的记录范围是记录的最后一个字段?
【问题讨论】:
-
哦,你的例子很难理解。
-
@AvinashRaj 阅读链接的网页后是否还不清楚?很短
-
是的,它正确地返回了上述预期的输出。你想达到什么目的?
-
@Mary 使用
cat -v file检查不可打印的字符。还可以尝试在文件上运行dos2unix并再次尝试使用awk。回车很可能被视为字符串的一部分,如果我的假设是正确的,awk '$1~"on", $1~"off"'应该可以工作。 -
如果没有dos2unix也可以使用
sed -ie "s/\r//" file达到同样的效果。
标签: awk