如何在bash中使用字典翻译列表?

xzh*_*zhu 1 bash

说我有一个字典TSV文件dict.txt:

apple     pomme
umbrella  parapluie
glass     verre
...       ...
Run Code Online (Sandbox Code Playgroud)

和另一个list.txt包含单词列表的文件(从左栏开始dict.txt):

pie
apple
blue
...
Run Code Online (Sandbox Code Playgroud)

我想将它们翻译成右栏中的相应单词dict.txt,即:

tarte
pomme
bleu
...
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

anu*_*ava 5

你可以使用awk:

awk 'FNR==NR{a[$1]=$2;next} a[$1]{print a[$1]}' dict.txt list.txt
Run Code Online (Sandbox Code Playgroud)

编辑:如果需要在字典中使用tab se字段分隔符将多个单词(用空格分隔)作为单词含义,则可以使用:

awk -F '\t' 'FNR==NR{a[$1]=$2;next} a[$1]{print a[$1]}' dict.txt list.txt
Run Code Online (Sandbox Code Playgroud)