Linux 当第3列有特定单词时,如何将其替换为第1列?

Linux 当第3列有特定单词时,如何将其替换为第1列?,linux,replace,Linux,Replace,我有一个三列数据文件,其格式如下: convicts NP convict console JJ <unknown> apples NP apple 罪犯 控制台JJ 苹果 所以,这里我想把console这个词放在“unknown”这个词的位置 PS:这是一个巨大的文件,多次包含“未知”一词。所以,无论第三列中“未知”一词出现在哪里,我都希望它被对应的第一列单词所取代 我试着使用这个命令 awk ' { $3="unknown"; $3=$1; print } ' <

我有一个三列数据文件,其格式如下:

convicts NP convict
console  JJ <unknown>
apples   NP apple
罪犯
控制台JJ
苹果
所以,这里我想把console这个词放在“unknown”这个词的位置

PS:这是一个巨大的文件,多次包含“未知”一词。所以,无论第三列中“未知”一词出现在哪里,我都希望它被对应的第一列单词所取代

我试着使用这个命令

awk ' { $3="unknown"; $3=$1; print } ' <FILENAME> 
awk'{$3=“未知”;$3=$1;print}'

但这将用第一列的单词替换整个第三列。请帮助我如何纠正这一点。提前谢谢

如果要用相应的行第一列值替换

awk '$3=="<unknown>"{$3=$1;} {print};' filename
awk'$3==''{$3=$1;}{print};'文件名