こんにちは。ファイルが2つあります。最初のファイルには、次の値が含まれています。
powershell
vectormaps
JuniperSA
2番目のファイルには値とIDが含まれています。
appid uid
SplunkforSnort 340
powershell 610
vectormaps 729
JuniperSA 826
postfix 933
SplunkforJuniperSRX 929
TA-barracuda_webfilter 952
TA-dragon-ips 954
dhcpd 392
そのため、AWKを使用してwhileループを実行して値とそのIDを取得しようとしましたが、出力ファイルには他の内容が書き込まれているようです。これが私がwhileループを実行する方法です。
while read $line;
do
awk '/'$line'/ {print $0}' file2.csv > new
done < file1
私の予想結果は次のようになります
powershell 610
vectormaps 729
JuniperSA 826
しかし、私の出力は
appid uid
SplunkforSnort 340
powershell 610
vectormaps 729
JuniperSA 826
postfix 933
SplunkforJuniperSRX 929
TA-barracuda_webfilter 952
TA-dragon-ips 954
dhcpd 392
何も起こらないようです。私がここで何を見逃しているのでしょうか?
ベストアンサー1
使用awk
$ awk 'FNR==NR {a[$1]=$2; next} {$(NF+1)=a[$1]}1' file2 file1
powershell 610
vectormaps 729
JuniperSA 826