外壳脚本匹配另一个文本文件中的数据



我有一个外壳脚本

#/bin/bash
var1=`cat log.json | grep "accountnumber" | awk -F ' ' '{print $1}'`
echo $var

外壳脚本的输出是:-

23466
283483
324932
87374

我想匹配已经存储在另一个文件中的上述数字(下面是文件格式(并打印其值。

23466=account-1
283483=account-2
324932=account-3
87374=account-4
127632=account-5
1324237=account-6
73642=account-7
324993284=account-8
.
.
4543454=account-200

扩展输出

account-1
account-2
account-3
account-4

紧凑的单行解决方案可以是:

join -t "="  <(sort bf) <(sort fa) | cut -d '=' -f 2

这里fa是一个包含 bash 脚本输出的文件,BF 是具有23466=account-1格式的文件

输出为:

account-1
account-2
account-3
account-4
#!/bin/bash
for var1 in $(awk -F ' ' '/accountnumber/{print $1}' log.json)
do
awk -F= '$1=="'"$var1"'"{print $2}' anotherfile
done

有一会儿,另一个答案几乎奏效了,我认为它比我写的要光滑得多。在大文件上也可能更快/更高效。这里是固定的。

awk -F ' ' '/accountnumber/{print $1}' log.json 
| sort -n 
| join -t= - accountfile 
| cut -d= -f2

最新更新