【发布时间】:2015-04-24 18:59:28
【问题描述】:
尝试将一个 CSV 中的 GEO IP 数据关联到另一个 CSV 的访问日志。
示例数据行:
CSV1
Bob,App1,8-Jan-15,8.8.8.8
April,App3,2-Jan-15,5.5.5.5
George,App2,1-Feb-15,8.8.8.8
CSV2
8.8.8.8,US,United States,CA,California,Mountain View,94040,America/Los_Angeles
5.5.5.5,US,United States,FL,Florida,Miami
我想在 CSV1 中搜索 CSV2 中列出的任何 IP,并在 IP 匹配时将字段 1、2、4 附加到 CSV1。
到目前为止,我在 SED 部分遇到了错误。
#!/bin/bash
for LINE in $( cat CSV2 | awk -F',' '{print $1 "," $2 "," $4}' )
do
$IP = $( echo $LINE | cut -d, -f1 )
sed -i.bak "s/"$IP/\""$LINE\"" CSV1
done
期望的输出:
Bob,App1,8-Jan-15,8.8.8.8,United States,CA
Dawn,App3,2-Jan-15,5.5.5.5,United States,FL
George,App2,1-Feb-15,8.8.8.8,United States,CA
【问题讨论】:
-
您想要的输出不清楚。请出示。
-
fyi,这一行是错误的:
$IP = $( echo $LINE | cut -d, -f1 )-- bash 中的变量赋值不要在左侧使用$,并且=周围不能有空格- -IP=$( echo "$LINE" | cut -d, -f1 )