我不知道怎么用awk这样做
但我的目标是创建awk单行语法,以便打印第二个字段($2)if
所有第一场($1)都是真的
例如
我有文件:
true my_name_is_lenon
true my_name_is_lenon
true my_name_is_lenon
false my_name_is_lenon
true my_name_is_lenon
false my_dog_is_fat
true my_dog_is_fat
true my_dog_is_fat
true I_am_very_tall
true I_am_very_tall
true I_am_very_tall
true my_ball_is_fine
true my_ball_is_fine
awk将只打印以下内容:
I_am_very_tall
my_ball_is_fine
因为I_am_very_tall,my_ball_is_fine在第一个字段上变为true而没有false
my_dog_is_fat,my_name_is_lenon未打印,因为第一个字段上的假字
如果第一个字段上没有假字,则规则是打印第二个字段! (在第二场的所有相同句子中)
利迪娅
这是一种方式:
awk '{if ($1 == "false") {array[$2] = $1} else if (array[$2] != "false") array[$2] = $1} END {for (i in array) if (array[i] == "true") print i}' inputfile
编辑:
这是多行:
awk '{if ($1 == "false")
{array[$2] = $1}
else if (array[$2] != "false")
array[$2] = $1}
END {for (i in array)
if (array[i] == "true")
print i}
' inputfile