Bash 如何在textfile中搜索特定字段?

Bash 如何在textfile中搜索特定字段?,bash,shell,ubuntu,Bash,Shell,Ubuntu,我想搜索文本文件的字段5,无论是“工薪”、“佣金”还是“小时” 搜索后,它将存储在类型中找到的数据。然后将该人员分类为哪种类型,并根据该类型运行代码。 我被卡住了,因为我不知道如何使用搜索功能并将其存储在临时字段中 代码: 文本文件 3,Frak,IT,9765753,Salaried 1,May,CEO,9789292,Salaried 5,Samy,Sales user,92221312,Commission 2,Orange,cleaner,935233233,Hourly 我想搜索文本

我想搜索文本文件的字段5,无论是“工薪”、“佣金”还是“小时” 搜索后,它将存储在类型中找到的数据。然后将该人员分类为哪种类型,并根据该类型运行代码。 我被卡住了,因为我不知道如何使用搜索功能并将其存储在临时字段中

代码:

文本文件

3,Frak,IT,9765753,Salaried
1,May,CEO,9789292,Salaried
5,Samy,Sales user,92221312,Commission
2,Orange,cleaner,935233233,Hourly
我想搜索文本文件的字段5,无论是“工薪”、“佣金”还是“每小时”

您应该像这样使用awk:

awk -F ',' '$5 ~ (Salaried|Commission|Hourly) {print}' file
顺便说一句,您的BASH脚本有许多语法错误,如果您切换到awk,编写脚本就会容易得多


嘿,对不起,我没有在这里粘贴完整的代码。我试过使用awk awk-F',''$5==“受薪员工”'$PAYROLL>类型,但似乎效果不太好。@Alien:如果你发布了awk脚本,我们会帮你修复它。我已经编辑过了,现在更清晰了吗?抱歉,问题不清楚,我错过了,更新了
count\u line
locate\u line
awk -F ',' '$5 ~ (Salaried|Commission|Hourly) {print}' file