我试图让用户输入一个值来查看文件中的特定列。有没有办法使用awk切换列,而无需在所有开关情况下重复自己?带有Awk的输入列
# Code:
read -p 'Enter a column:' input
for i in "$file_name"; do
cat "$i" | awk -v column="$input" '{ print $column }'
done
这里有一个更好的解释:
view_column() {
for i in "$file_name"; do
cat "$i" | awk -v col="$1" '{ print $col }'
done
}
print_menu() {
menu=('First' 'Last' 'Email' 'Exit')
for ((i=0; i<${#menu[@]}; i++)); do
printf "%2d. %s\n" "$((i+1))" "${menu[$i]}"
done
}
main() {
while true; do
clear
print_menu
read -p 'Enter a choice: ' choice
if (("$choice" == 4)); then
break
fi
view_column "$choice"
sleep 1.5
done
}
是'$ input'预计是数字吗? – hek2mgl
是的,输入代表一个整数。该文件包含四个字段,其中包含名字,姓氏,工作时间,电子邮件。 @ hek2mgl – theGrayFox
然后@肯特的答案应该工作,作为你的例子 – hek2mgl