我有一個包含多列的文件。我正試圖過濾出在前兩個字段中具有相同值的 記錄。這兩個字段都保存文本值。這 是我使用的命令:基於字符串比較的過濾
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