我在bash中有一个命令,它返回存储在变量$line
中的IP地址的语言环境。该命令看起来像这样:
geoiplookup -f GeoIP.dat "$line" >> resultFile
将返回“New York,NY”等结果。
现在我想将Ip地址连接到结果,所以它看起来像这样:
“215.216.217.218,New York,NY”
类似于:
$line +", "+ (geoiplookup -f GeoIP.dat "$line") >>resultFile
有人能给我正确的语法吗?
答案 0 :(得分:3)
怎么样
echo "$line, $(geoiplookup -f GeoIP.dat "$line")" >> resultFile
这依赖于bash $(...)
的反引号运算符,它执行命令并捕获其输出。因此,在上面一行中,bash将执行geoiplookup -f GeoIP.dat "$line"
并将其输出放在$(...)
部分的位置。
答案 1 :(得分:1)
这个问题的标题引导你走错了路。您根本不需要存储输出。只需按所需顺序将所有内容写入输出文件:
{ printf "%s, " "$line"; geoiplookup -f GeoIP.dat "$line"; } >> resultFile