我有一个包含多列的文件。我正试图过滤出在前两个字段中具有相同值的 记录。这两个字段都保存文本值。这 是我使用的命令:基于字符串比较的过滤
cat input_file | awk -F'\t' '{if($1==$2) print $1 $2}'
当我运行这个命令我得到的只有那些行,其中在字段中的值 数字。该文件包含几个行,这两个行在两个不是数字的 字段中具有相同的值。我如何强制awk进行字符串比较?
另外,有没有其他办法可以做到这一点? (我是新来的Unix envionment 不知道太多的技巧......希望得到咨询)如果要过滤掉所有,其中前两列是相同的只是做awk '$1!=$2' file
作为awk
使用空白行
AWK做可以读取文件本身的例子。 http://partmaps.org/era/unix/award.html –
与'=='比较时,awk不应该关心字符串/数字。当我尝试运行你的命令时,它适用于我(字符串以及数字)。你确定这些行是用制表符分隔的吗?也许你可以这样做:'hexdump -C your-file'。 0x09 ==选项卡和0x20 ==空间。 – emil
谢谢!问题在于分离器。实际的分隔符不是标签,而是一个很长的字符序列(为了避免混淆,已经将它改为tab)。显然,序列有一个我错过了的尾部空间。 – Aadith