如何比较文件中最后两个字段的数值?

时间:2013-08-13 18:25:29

标签: bash awk

我有一个包含以下信息的文件

   organic_apple;2;organic_apple_212_212
   organic_tomato;3;organic_tomato_24_29
    fruit_juice;5;fruit_juice_15_15

所以我想要一个包含输出的文件

organic_apple;2;organic_apple_212
organic_tomato;3;organic_tomato_24_29
fruit_juice;5;fruit_juice_15

比较最后两个字段,如果它们是同一个显示一次,如果没有,则显示它们 我使用solaris在unix bash中写作

3 个答案:

答案 0 :(得分:2)

无论下划线数量多少,都要比较最后两个:

awk 'BEGIN{FS=OFS="_"}$NF==$(NF-1){--NF;$1=$1}1' test.in

答案 1 :(得分:1)

试试这个:

awk -vOFS=_ -F_ '{if ($2 == $3) print $1, $2; else print $1, $2, $3}' file.txt

答案 2 :(得分:0)

此脚本删除最后一个字段,如果它等于最后一个字段:

awk -F "_" '$NF==$(NF-1){$NF=""}1' file