bash - 每个 grep 结果的新行分隔符(即使 grep 输出为空)
问题描述
如果文件内容是:
echo -n "Host is:"; grep -h -E 'host_value' /file_path
echo -n "IPAD is:"; grep -h -E 'Address_value' /file_path
即使 grep 输出为空,如何强制每个 grep 输出位于单独的行中?以及如何用特定字符串替换空值,例如“此参数没有值”。
例如,如果 host_value 是 hostname 但 Address_value 为空,则输出应如下所示:
Host is:hostname
IPAD is:No value for this parameter
谢谢
解决方案
也许首先将 grep 的结果分配给一个变量。
HOST=$(grep -h -E 'host_value' /file_path 2>/dev/null)
ADDR=$(grep -h -E 'Address_value' /file_path 2>/dev/null)
echo "Host is: $HOST"
echo "IPAD is: $ADDR"
# replace null value
DEFAULT="No value for this parameter"
echo "Host is: ${HOST:-$DEFAULT}"
echo "IPAD is: ${ADDR:-$DEFAULT}"
请参阅Bash 参考手册了解:-
.
推荐阅读
- laravel - 如何将数据库连接和范围会话持久化到租户,以及如何在 laravel 多租户中为租户的用户配置 Laravel Fortify?
- sql - 按年和月提取布尔计数
- json - 如何用 Flutter 解析动态 JSON?
- sharepoint - 如何基于单个架构更新两个 SharePoint 列表?(电源应用程序)
- php - 带有 Larvalel api Nginx 配置的 Nuxt 前端
- python - 插入ascii转义字符时删除python中的双空格
- linux - 捕获标准输出时文件描述符过多
- c++ - 如何将 QTableWidget 添加到 QTreeWidget 但作为 QTreeWidgetItem
- python - 导入 talib --- ModuleNotFoundError:没有名为“talib”的模块
- python - 如何选择整数中的中间数字并使其他数字保持为整数Python