gpt4 book ai didi

linux - awk 只能打印整行;无法访问特定字段

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:55 25 4
gpt4 key购买 nike

我目前正在为 Unix OS I 开发我的顶点项目。我非常接近完成,但我被困在这部分:基本上,我的任务是创建一个基于菜单的应用程序,用户可以在其中输入名字和姓氏,我获取该数据,使用它创建用户名,然后将其从小写转换为大写,最后将数据存储为:名字:姓氏:用户名

当要求显示数据时,我必须根据用户名而不是名字来显示数据,并使用空格而不是制表符进行格式化。例如,它应该是这样的:username firstname lastname。因此,我尝试了多个命令,例如 sort 和 awk,但我似乎只能将文件中的字段作为一个大字段进行访问;例如,当我执行 awk '{print NF}' users.txt 查找每行的字段数时,它将返回 1,清楚地表明我的数据仅作为一个字段输入,而不是我需要的必要的3。所以我的问题是:如何更改文本文件中的字段数?这是我将名字:姓氏:用户名添加到文件 users.txt 的代码:

userInfo=~/capstoneProject/users.txt
#make sure strings is not empty before writing to disk
if [[ "$fname" != "" && "$lname" != "" ]]
then #write to userInfo (users.txt)
echo "$fname:$lname:$uname" | tr a-z A-Z >> $userInfo
#change to uppercase using |
fi

是因为我将数据输入文件的方式吗?使用 echo "$fname:$lname:$uname" ?因为这是我的教科书告诉我如何做的方式,而且他们后来在对特定字段使用排序功能时没有遇到任何问题,就像我现在正在尝试做的那样。如果需要更多细节,请告诉我;这是我提交项目前最不需要的东西,该项目将于今晚到期。

最佳答案

您的输入文件有 : 分隔的字段,所以您需要告诉 awk:

awk -F':' '{print NF}' users.txt

关于linux - awk 只能打印整行;无法访问特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47743441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com