我有一个文件names.txt
[Fruits]
Apple
Banana
Orange
[Vegetables]
Carrots
Spinach
如果满足水果条件,我需要显示苹果、香蕉和橙子。同样,如果蔬菜满足条件,请显示胡萝卜和菠菜等。
您能指导我如何使用 shell 脚本实现此目的吗?
我尝试使用 while read 行,但我无法获得所需的方式
如果您想做的只是打印出指定的部分,那么这可能是您的起点:
#!/usr/bin/env bash
x="${1:-Fruits}"
doit=false
while read -r; do
case "$REPLY" in
"[$x]") doit=true; continue ;;
"["*) doit=false; continue ;;
esac
$doit && printf "%s\n" "$REPLY"
done
首字母
doit=false
在您的第一行不是节头的情况下可以保护您。
“设置”此脚本条件的方法显然是在执行脚本时包含节名称作为选项。如果您想要其他内容,请编辑您的问题,向我们展示您到目前为止的工作,我们将找出解决方法。