【发布时间】:2013-12-20 11:13:27
【问题描述】:
我正在尝试在 spredsheet.xls 中使用 awk 命令找到的名称旁边显示字段
我有这种情况;
**Column1** *Column2*
**PIPPO** *pippo@gmail.com darth@gmail.com*
**PLUTO** *pluto@gmail.com duck@gmail.com*
**WATER** *drink@gmail.com water@gmail.com*
如何在第 1 列中搜索单词并在第 2 列中显示内容?
awk '$1 == "PIPPO"' spreadsheet.xls
这个命令显示:
PIPPO pippo@gmail.com darth@gmail.com
更新
这是我的代码 ---- Column1 (PIPPO, PLUTO, WATER) 和 awkvar 是一回事----
for fullname in /*.zip; do
filename="${fullname##*/}"
awkvar=$(echo $filename | cut -d_ -f2-2)
awk -v var="$awkvar" '{print $2,$3}' spreadsheet.xls
done
但这不起作用。如何在 awk 中放入模式变量?
更新 2
我有用逗号分隔的更新列表 xls
FIELD1,pippo@gmail.com,darth@gmail.com
FIELD1,pippo@gmail.com,darth@gmail.com,sampei@gmail.com
output=(awk -F ',' -v var="$awkvar" '$1==var {print $2,$3,$4} spreadsheet.txt)
但是 awk 删除了输出开头的一些字母
echo "$output"
- ippo@gmail.com darth@gmail.com
- pippo@gmail.com darth@gmail.com sampei@gmail.com
但如果我删除 $4
output=(awk -F ',' -v var="$awkvar" '$1==var {print $2,$3} spreadsheet.txt)
echo "$output"
line1 显示正确,但 line2 显示不正确:
- pippo@gmail.com darth@gmail.com
- pippo@gmail.com darth@gmail.com
我做错了什么?
【问题讨论】: