【发布时间】:2018-01-26 00:51:11
【问题描述】:
我有一个文件如下
cat foo.txt
N N
N N
N N
N N
I-MB I-MB
我想输出那些第一列不等于第二列的行,所以我用awk来实现它
cat foo.txt | awk '$1 != $2'
N N
N N
N N
但很奇怪,它不起作用。
原因是windows生成的
file foo.txt
foo.txt: ASCII text, with CRLF, LF line terminators
将其转换为 unix 形式后,它就可以工作了。
sed -e 's/^M$//' foo.txt > foo2.txt
file foo2.txt
foo2.txt: ASCII text
那么为什么CRLF 可能会影响某些 awk 功能而其他不会呢?例如
head foo.txt | awk '$1 !~ /N/'
I-MB I-MB
I-MB I-MB
【问题讨论】:
标签: awk