我有一个外壳脚本
#/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