bash - 如何将bash参数中的逗号数与文本文件中的逗号数进行比较
问题描述
我有一个文本文件,其中包含:
1,2,3
我有一个带有参数的脚本插入,我想将该参数中的逗号数与文本文件中的数字进行比较。
我正在尝试做类似的事情:
if [ ((grep -c "," "$1/$2.txt")) -gt ((grep -c "," "$3")) ] | [ ((grep -c "," "$1/$2.txt")) -lt ((grep -c "," "$3")) ];
then echo "yes"
$1/$2.txt 是文本文件的目录
我知道我做错了,但不知道如何获得逗号的数量,因为 -c 返回行数。而且我不确定一半的语法。我应该改用 sed 吗?很高兴听到任何建议......
解决方案
当您只想比较逗号的数量时,您可以使用
if [ "$(tr -cd "," < "$1"/"$2")" = "$(tr -cd , < "$3")" ]; then
echo yes
fi
编辑:我以为$3
是另一个文件。当它是一个字符串时,你可以使用
if [ "$(tr -cd "," < "$1"/"$2")" = "$(tr -cd , <<< "$3")" ]; then
echo yes
fi
推荐阅读
- azure - 在 CI/CD 之后找不到 Azure Function API
- laravel-5 - How to get the user name by not primary key field in laravel
- android - 如何使用 android 应用程序通过 WhatsApp 发送数据?
- java - 构建在命令提示符下成功,但在 eclipse 中没有
- java - 使用现有的 JPAQuery 作为子查询
- angular - Spartacus 是否支持本地 Hybris?
- python - 取一个系列的所有元素与python pandas中以前的元素的差异
- amazon-web-services - Kubernetes 部署资源限制
- sql - 替换单元格中所需的数字
- python - 保存图像功能无法使用 PIL 库调整图像大小