我試圖讓用戶輸入一個值來查看文件中的特定列。有沒有辦法使用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