linux - 签入文件数据与语法匹配
问题描述
我有一个场景,我想检查文件中的以下详细信息是否与语法匹配
语法:姓名/姓氏/国家
注意: 文件中的每条记录都应与语法匹配。如果一条记录不匹配,则应显示失败或成功
档案资料
Ajay/abc/india
Avik/bcs/delhi
Viraj/xyz/
如您所见,文件数据最后一条记录根据语法不匹配,则应显示失败
我的代码
for i in `cat /demo/Student.txt`
do
check=`echo $i | cut -d '/' -f3`
if [[ -z $check ]];
then
echo failed syntax does not match NAME/SURNAME/COUNTRY
exit 1
fi
done
解决方案
也许使用 awk
#check value in third column, using / as a delimiter
check="$(awk -F"/" '{print $3}' /demo/Student.txt)"
#check if third column is empty
if [ "$check" == "" ]; then
echo "failed syntax..."
exit 1
fi
您可以在三列上运行此检查(将打印 $3 更改为 $1 和 $2)可能不是最有效的解决方案,因为我对 shell 脚本也相当陌生,但我认为它应该可以工作。
推荐阅读
- javascript - '[string, string] 类型的参数错误?(在 Angular 和 d3 中)
- bash - 如何使 Macbook 终端文本不那么透明
- html - 文本从桌面屏幕更改为移动屏幕
- javascript - PhantomJS 截图交易视图图表
- sql - 可以使用带有数据透视/计数的合并将空值映射到 Spark sql 中的零吗?
- python - 多列的二进制编码
- windows-10 - 如何在 Windows 10 上安装 Sybase Adaptive Server Enterprise PC Client 15.5?
- python - Django - 无法在下拉列表中检索数据库中的数据
- php - PHP 更新准备好的语句问题
- c# - 如何在 C# 中清除 errno?