Linux 需要使用户名:普通从散列:普通用户名:散列

Linux 需要使用户名:普通从散列:普通用户名:散列,linux,shell,Linux,Shell,文件A包含hash:plain 文件B包含username:hash 所需输出username:plain 有没有办法在shell中执行此操作?使用命令替换cut: echo $(cut -d: -f1 B):$(cut -d: -f2 A) 假设文件顺序不同,每个文件有多行,并且您希望具有相同哈希的行配对,有几种方法: $ join -11 -22 -t: -o 2.1,1.2 <(sort -k1,1 -t: filea) <(sort -k2,2 -t: fileb) $

文件A包含
hash:plain
文件B包含
username:hash
所需输出
username:plain

有没有办法在shell中执行此操作?

使用命令替换
cut

echo $(cut -d: -f1 B):$(cut -d: -f2 A)

假设文件顺序不同,每个文件有多行,并且您希望具有相同哈希的行配对,有几种方法:

$ join -11 -22 -t: -o 2.1,1.2 <(sort -k1,1 -t: filea) <(sort -k2,2 -t: fileb)
$ awk -F: -v OFS=: 'NR == FNR { hashes[$1] = $2; next }
                    $2 in hashes { print $1, hashes[$2] }' filea fileb