【发布时间】:2017-12-08 17:01:52
【问题描述】:
我正在尝试在 Unix 中创建一个程序来访问数据文件,在文件中添加、删除和搜索名称和用户名。使用这个 if 语句,我试图允许用户通过第一个字段搜索文件中的数据。
文件中的所有数据都使用大写字母,所以我首先必须将用户输入的任何文本从小写字母转换为大写字母。出于某种原因,此代码不能同时转换为大写和搜索和打印数据。
我该如何解决?
if [ "$choice" = "s" ] || [ "$choice" = "S" ]; then
tput cup 3 12
echo "Enter the first name of the user you would like to search for: "
tput cup 4 12; read search | tr '[a-z]' '[A-Z]'
echo "$search"
awk -F ":" '$1 == "$search" {print $3 " " $1 " " $2 }'
capstonedata.txt
fi
【问题讨论】:
-
我认为添加一些示例数据和预期输出会有所帮助。并解释“这段代码不起作用”是什么意思。
-
我猜你把文件名放在下一行?您必须将
\放在末尾以将其视为命令,或者将其放在同一行awk -F ":" '$1 == "$search" {print $3 " " $1 " " $2 }' capstonedata.txt。否则,它将视为单独的命令。 -
你想要
read search ; search=$(echo "$search" | tr '[a-z]' '[A-Z]'; ...。和awk -v srch="$search" '{ ...}。祝你好运。