1

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

   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 中编写

4

3 回答 3

2

不管下划线的数量如何,比较最后两个:

awk 'BEGIN{FS=OFS="_"}$NF==$(NF-1){--NF;$1=$1}1' test.in
于 2013-08-13T18:33:27.043 回答
1

尝试这个 :

awk -vOFS=_ -F_ '{if ($2 == $3) print $1, $2; else print $1, $2, $3}' file.txt
于 2013-08-13T18:30:27.157 回答
0

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

awk -F "_" '$NF==$(NF-1){$NF=""}1' file
于 2013-08-13T18:30:41.460 回答