![ash - 逐行解析配置文件](https://linux22.com/image/205458/ash%20-%20%E9%80%90%E8%A1%8C%E8%A7%A3%E6%9E%90%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.png)
我的配置文件如下所示:
ver 3
file test1.conf ~/etc
file test2.conf ~/etc/conf
script tst.sh
我希望我的脚本能够迭代所有以“file”为前缀的行,提取文件名和位置值并执行一些操作。从现在开始我得到了:
files=$(cat file.conf | grep file)
但随后我不确定如何进入迭代以从每行中提取第二个和第三个字符串。
答案1
就像您对任何 POSIX shell 所做的那样:
while read type name path; do
if [ "$type" = file ]; then
echo "$path/$name";
fi
done < your.conf
用于read
将行拆分为变量,测试第一个变量file
,并对其他元素执行您想要执行的操作。你不需要awk
这样的东西。